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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
Sysfa1l
5 / 5 / 1
Регистрация: 31.03.2010
Сообщений: 71
#1

Параметры функции по умолчанию - C++

29.09.2010, 12:04. Просмотров 1698. Ответов 10
Метки нет (Все метки)

Можно ли в качестве параметра по умолчанию указать элимент класса ?

Хотелось бы сделать как то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
char* SendMessage(char* GET,char* HOST=serverName);
    
    bool Download(char* link);
 
    void SetServerName(char* _serverName)
    {
        strcpy(serverName,_serverName);
    }
 
    
private:
    char serverName[MAX_PATH];
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2010, 12:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Параметры функции по умолчанию (C++):

Параметры по умолчанию в функции - C++
Всем привет. Есть такой класс: template <typename T> class MyClass { public: MyClass(T *_beg, T *_en):beg(_beg),en(_en) {} ...

Параметры функции по умолчанию - C++
Приветствую всех! Уважаемые эксперты С++, подскажите, значения параметров по умолчанию должны задаваться в прототипе или в реализации...

Параметры шаблонов функции по умолчанию - C++
есть функция template<class T> T sum(valarray<T> x, size_t left = 0, size_t right = 0){ T result = 0; if(right == 0)...

Параметры по умолчанию в С. - C++
Всем привет! Захотел воспользоватся параметрами по умолчанию в си-шном проекте. И получил следующие ошибки: Действительно данный...

ODBC, параметры по умолчанию - C++
Доброго утра! Хочу на ПК програмно прописывать источники ODBC. Пример абстрактного, работающего кода. Это некий копи паст - так что не...

Указатель на функцию и параметры по умолчанию - C++
Приветствую! Есть такая задача - мне нужно передавать в специальную функцию массив и указатель на функцию. Функции эти для сортировки, и...

10
obuhanoe
23 / 21 / 2
Регистрация: 25.08.2010
Сообщений: 93
29.09.2010, 12:15 #2
попробуй объяви

C++
1
static char serverName[MAX_PATH];
1
Sysfa1l
5 / 5 / 1
Регистрация: 31.03.2010
Сообщений: 71
29.09.2010, 12:17  [ТС] #3
пробовал,не работает...
0
obuhanoe
23 / 21 / 2
Регистрация: 25.08.2010
Сообщений: 93
29.09.2010, 12:18 #4
дай полное описание класс
1
Sysfa1l
5 / 5 / 1
Регистрация: 31.03.2010
Сообщений: 71
29.09.2010, 12:26  [ТС] #5
Может быть со статиком не работает из за того , что данный класс расширяет другой класс?

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
class CHttpUtilites 
{//класс инкапсулирующий работу с Http
public:
    CHttpUtilites();
    ~CHttpUtilites();
 
    char* SendMessage(char* GET,char* HOST=NULL);
    
    bool Download(char* link);
 
    void SetServerName(char* _serverName)
    {
        strcpy(serverName,_serverName);
    }
 
    
private:
    bool Connect();
    
    void Disconnect();
 
    char serverName[MAX_PATH];
 
    SOCKET httpsock;
    char* htmlBuff;
};
0
obuhanoe
23 / 21 / 2
Регистрация: 25.08.2010
Сообщений: 93
29.09.2010, 12:30 #6
в приведенном пример со static работает...тогда давай как наследуется класс от CHttpUtilites
1
Sysfa1l
5 / 5 / 1
Регистрация: 31.03.2010
Сообщений: 71
29.09.2010, 12:38  [ТС] #7
Вы случайно не забыли исправить ? Немного не то выложил выше
C++
1
char* HOST=NULL

C++
1
2
3
4
5
6
7
8
9
class CLoaderUtilites:public CHttpUtilites
{
public:
    CLoaderUtilites();
    bool Activate();
    
private:
    char* Parse(char* parse);
};
Ошибки :
Error 3 error LNK2001: unresolved external symbol "private: static char * CHttpUtilites::serverName" (?serverName@CHttpUtilites@@0PADA) C:\Users\true\Documents\Visual Studio 2010\Projects\loader\loader\CHttpUtilites.obj loader

Error 4 error LNK2001: unresolved external symbol "private: static char * CHttpUtilites::serverName" (?serverName@CHttpUtilites@@0PADA) C:\Users\true\Documents\Visual Studio 2010\Projects\loader\loader\CLoaderUtilites.obj loader

Error 5 error LNK1120: 1 unresolved externals C:\Users\true\Documents\Visual Studio 2010\Projects\loader\Debug\loader.exe loader
0
obuhanoe
23 / 21 / 2
Регистрация: 25.08.2010
Сообщений: 93
29.09.2010, 12:43 #8
как в main обращаетесь к классам?
1
Sysfa1l
5 / 5 / 1
Регистрация: 31.03.2010
Сообщений: 71
29.09.2010, 12:55  [ТС] #9
C++
1
2
    CLoaderUtilites* LoaderUtilites = new CLoaderUtilites;
    LoaderUtilites->Activate();
Попробовал статистически, тоже самое.
0
obuhanoe
23 / 21 / 2
Регистрация: 25.08.2010
Сообщений: 93
29.09.2010, 13:01 #10
Sysfa1l - А вы случайно не забыли описание CLoaderUtilites и Activate()
фрагмент
C++
1
2
public:
        CHttpUtilites(){};
еще фрагмент
C++
1
2
3
public:
        CLoaderUtilites(){};
        bool Activate(){};
Добавлено через 1 минуту
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
#include <iostream>
//#include <socket.h>
#include <cstring>
 
 
using namespace std;
 
class CHttpUtilites
{//класс инкапсулирующий работу с Http
public:
        CHttpUtilites(){};
        ~CHttpUtilites();
 
        char* SendMessage(char* GET,char* HOST=serverName);
 
        bool Download(char* link);
 
        void SetServerName(char* _serverName)
        {
                strcpy(serverName,_serverName);
        }
 
 
private:
        bool Connect();
 
        void Disconnect();
 
static        char serverName[10];
 
       SOCKET httpsock;
        char* htmlBuff;
};
 
 
class CLoaderUtilites:public CHttpUtilites
{
public:
        CLoaderUtilites(){};
        bool Activate(){};
 
private:
        char* Parse(char* parse);
};
 
 
 
int main()
{
 
    CLoaderUtilites* LoaderUtilites = new CLoaderUtilites;
    LoaderUtilites->Activate();
 
delete LoaderUtilites;
 
 
 
    return 0;
}
компиляция без ошибок происходит..
0
Sysfa1l
5 / 5 / 1
Регистрация: 31.03.2010
Сообщений: 71
29.09.2010, 13:04  [ТС] #11
хм.. ладно, буду разбираться ,спасибо
0
29.09.2010, 13:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2010, 13:04
Привет! Вот еще темы с ответами:

Параметры по-умолчанию в виртуальных функциях - C++
Подскажите, это ведь UB ? #include &lt;iostream&gt; class Base { int a; public: Base() : a(1) {}

Оптимизация. Перегрузки vs параметры по умолчанию - C++
Вот я думаю, какой вариант реализации будет быстрее для выполнения программы. Такой: void Show(double restTime = 0) { ...

Аргументы функции по умолчанию - C++
Есть пример из книги Прата с использованием аргументов, определяемых по умолчанию. После ввода строки программа виснет. Подскажите, в чем...

Аргументы функции по умолчанию - C++
Написать функцию, которая принимает два параметра типа int: высоту и ширину. Данная функция рисует на экране прямоугольник, размер которого...


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

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

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