Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
#1

Функция не принимает значение - C++

11.08.2012, 18:09. Просмотров 776. Ответов 3
Метки нет (Все метки)

Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "stdafx.h"
#include "CRoute.h"
#include <iostream>
#include <string.h>
#include <windows.h>
using namespace std;
 
int _tmain()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    cout << "Вывод информации о маршрутах:\n";
    CRoute DefConst;  
    cout << "\nID маршрута: " << DefConst.getRouID();
    cout << "\nНазвание маршрута: " << DefConst.getRoute_N();
    cout << "\nСтоимость маршрута: " << DefConst.getPer();
    cout << "\nСрок пребывания: " << DefConst.getCos_t();
 
    cout << "\n";
 
    CRoute ConstPar(35, "ростов-запорожье", 1, 600);  
    cout << "\nID маршрута: " << ConstPar.getRouID();
    cout << "\nНазвание маршрута: " << ConstPar.getRoute_N();
    cout << "\nСтоимость маршрута: " << ConstPar.getPer();
    cout << "\nСрок пребывания: " << ConstPar.getCos_t();
 
    cout << "\n";
 
    CRoute ConstCop(DefConst);  
    cout << "\nID маршрута: " << ConstCop.getRouID();
    cout << "\nНазвание маршрута: " << ConstCop.getRoute_N();
    cout << "\nСтоимость маршрута: " << ConstCop.getPer();
    cout << "\nСрок пребывания: " << ConstCop.getCos_t();
 
    cout << "\n\n"; 
 
}
теперь файл .h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <string.h>
 
class CRoute
{
    private:
        int RouteID,
            Period,
            Cost;
 
        char *RouteName;
 
    public:
        CRoute();           //конструктор по умолчанию
        CRoute(const CRoute &g);            //конструктор копирования
        CRoute(int _RouteID, char *_RouteName, int _Period, int _Cost); //конструктор с параметрами
        ~CRoute();      //деструктор
 
        void CRoute::setRouID(int _RouteID);
        int CRoute::getRouID(void);
        void CRoute::setRoute_N(char *_RouteName);
        char *CRoute::getRoute_N(void);
        void CRoute::setPer(int _Period);
        int CRoute::getPer(void);
        void CRoute::setCos_t(int _Cost);
        int CRoute::getCos_t(void);
 
};
и с расширением cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include "stdafx.h"
#include "CRoute.h"
 
 
 
void CRoute::setRouID(int _RouteID)
{
    RouteID = _RouteID;
}
int CRoute::getRouID(void)
{
    return RouteID;
}
 
void CRoute::setRoute_N(char *_RouteName)
{
    int n = strlen(_RouteName) + 1;
    RouteName = new char [n];
    strncpy_s(RouteName, _RouteName, n);
}
char *CRoute::getRoute_N(void)
{
    return RouteName;
}
 
void CRoute::setPer(int _Period)
{
    Period = _Period;
}
int CRoute::getPer(void)
{
    return Period;
}
 
void CRoute::setCos_t(int _Cost)
{
    Cost = _Cost;
}
int CRoute::getCos_t(void)
{
    return Cost;
}
 
CRoute::CRoute()            
{
    RouteID = 22;
    RouteName = new char[strlen("ростов-москва")+1];
    strncpy_s(RouteName, "ростов-москва");
    Period = 2;
    Cost = 2000;
}
 
CRoute::CRoute(const CRoute &g)         
{
    RouteID = g.RouteID;
    RouteName = new char[strlen(g.RouteName)+1];
    strcpy_s(RouteName, g.RouteName);
    Period = g.Period;
    Cost = g.Cost;
}
 
CRoute::CRoute(int _RouteID, char *_RouteName, int _Period, int _Cost)  
{
    RouteID = _RouteID; 
    int n = strlen(_RouteName) + 1;
    RouteName = new char [n];
    strncpy_s(RouteName, _RouteName, n);
    Period = _Period;
    Cost = _Cost;
}
 
CRoute::~CRoute()
{
    delete []RouteName;
}
вот что выдает:
1>c:\users\ваня\desktop\вариант 6\sub44\croute.cpp(19) : error C2660: strncpy_s: функция не принимает 3 аргументов
1>c:\users\ваня\desktop\вариант 6\sub44\croute.cpp(48) : error C2660: strncpy_s: функция не принимает 2 аргументов
1>c:\users\ваня\desktop\вариант 6\sub44\croute.cpp(57) : error C2660: strcpy_s: функция не принимает 2 аргументов
1>c:\users\ваня\desktop\вариант 6\sub44\croute.cpp(67) : error C2660: strncpy_s: функция не принимает 3 аргументов

заранее благодарю за помощь..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.08.2012, 18:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция не принимает значение (C++):

Вывести на экран значение t при котором функция x(t) принимает максимальное значение - C++
Объясните, как решить с помощью массива. Только начал изучать C++. Знаю, как вывести максимальный из массива. Но как сделать чтобы в этот...

Найти, в какой точке функция принимает наибольшее значение - C++
Протабулювання {как это перевести?} функцию у = cosx3 / 2,1 + cosx2 / 1,1 - 8,3sin (3x + 1), на промежутке с шагом h = 1.2 . Вычислить: ...

Функция не принимает аргументы - C++
Не знаю какой участок кода выделить, напишу всю программу Программа выводит выбор продукта, вводит его вес, и так пока пользователь не...

Функция не принимает 5 аргументов - C++
Возникает ошибка, не могу исправить...помогите #include&lt;iostream&gt; #include&lt;Windows.h&gt; using namespace std; void rect(float...

Функция не принимает 0 аргументов - C++
Доброво времени суток, форумчане) У меня такой вопрос: Как исправить ошибку: &lt; &gt;. Текст программы приведен ниже: #include...

Функция не принимает 1 аргументов - C++
Добрый день! По ООП проходим тему наследования, пишу лабораторную. Нужно чтобы был контейнер (список), в котором содержались производные...

3
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
11.08.2012, 18:16 #2
А в чём проблема? strncpy_s принимает четыре аргумента: приёмник, его размер, источник, количество копируемых байт (копирует до израсходования приёмника или источника); strcpy_s тоже принимает три: приёмник, размер приёмника, источник (копирует до израсходования приёмника или встречи нулевого байта в источнике). За деталями — в MSDN.
1
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
11.08.2012, 18:23  [ТС] #3
а почему тогда работало все до использования динамической памяти?
0
cossack5
54 / 48 / 1
Регистрация: 02.08.2012
Сообщений: 127
11.08.2012, 19:32 #4
Цитата Сообщение от yoghurt92 Посмотреть сообщение
а почему тогда работало все до использования динамической памяти?
strcpy_s имеет две перегрузки:
1) errno_t strcpy_s(char* _Dst,rsize_t _SizeInBytes, const char* _Src) - выбирается если _Dst - указатель на выделенный участок.
2) errno_t strcpy_s<_Size>(char(&_Dest)[_Size], const char* _Source) - выбирается если _Dest - указатель на строку фиксированного размера
Пример:
C++
1
2
3
4
char arr[200];
strcpy_s(arr,"Example of second overload"); // это будет второй вариант
char* allocarr=new char[200];
strcpy_s(allocarr,200,"Example of first overload"); // второй вариант
1
11.08.2012, 19:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.08.2012, 19:32
Привет! Вот еще темы с ответами:

Функция не принимает параметр - C++
Есть структура: struct tovar { char name_prod; char country_prod; int number_prod; }; Есть программа: char...

Функция не принимает 0 аргументов - C++
Class1(header) #pragma once class Class_1_Ignateva_Anna { public: Class_1_Ignateva_Anna(void); ...

Функция не принимает аргумент - C++
const char SDFN = &quot;dhcpcsvc.dll&quot;, SL = &quot;Стерео&quot;, procName = &quot;launcher.exe&quot;; так выглядят константы DWORD PID =...

Функция не принимает параметры - C++
Есть код: #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;locale.h&gt; struct buffer{ int ms; char...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru