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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
Sysfa1l
5 / 5 / 1
Регистрация: 31.03.2010
Сообщений: 71
29.09.2010, 12:04     Параметры функции по умолчанию #1
Можно ли в качестве параметра по умолчанию указать элимент класса ?

Хотелось бы сделать как то так
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];
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2010, 12:04     Параметры функции по умолчанию
Посмотрите здесь:

Аргументы функции по умолчанию C++
Параметры по умолчанию в С. C++
ODBC, параметры по умолчанию C++
C++ Аргументы функции по умолчанию
C++ Указатель на функцию и параметры по умолчанию
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
obuhanoe
23 / 21 / 2
Регистрация: 25.08.2010
Сообщений: 93
29.09.2010, 12:15     Параметры функции по умолчанию #2
попробуй объяви

C++
1
static char serverName[MAX_PATH];
Sysfa1l
5 / 5 / 1
Регистрация: 31.03.2010
Сообщений: 71
29.09.2010, 12:17  [ТС]     Параметры функции по умолчанию #3
пробовал,не работает...
obuhanoe
23 / 21 / 2
Регистрация: 25.08.2010
Сообщений: 93
29.09.2010, 12:18     Параметры функции по умолчанию #4
дай полное описание класс
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;
};
obuhanoe
23 / 21 / 2
Регистрация: 25.08.2010
Сообщений: 93
29.09.2010, 12:30     Параметры функции по умолчанию #6
в приведенном пример со static работает...тогда давай как наследуется класс от CHttpUtilites
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
obuhanoe
23 / 21 / 2
Регистрация: 25.08.2010
Сообщений: 93
29.09.2010, 12:43     Параметры функции по умолчанию #8
как в main обращаетесь к классам?
Sysfa1l
5 / 5 / 1
Регистрация: 31.03.2010
Сообщений: 71
29.09.2010, 12:55  [ТС]     Параметры функции по умолчанию #9
C++
1
2
    CLoaderUtilites* LoaderUtilites = new CLoaderUtilites;
    LoaderUtilites->Activate();
Попробовал статистически, тоже самое.
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;
}
компиляция без ошибок происходит..
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2010, 13:04     Параметры функции по умолчанию
Еще ссылки по теме:

C++ Параметры по умолчанию в функции
параметры шаблонов функции по умолчанию C++
Оптимизация. Перегрузки vs параметры по умолчанию C++

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

Или воспользуйтесь поиском по форуму:
Sysfa1l
5 / 5 / 1
Регистрация: 31.03.2010
Сообщений: 71
29.09.2010, 13:04  [ТС]     Параметры функции по умолчанию #11
хм.. ладно, буду разбираться ,спасибо
Yandex
Объявления
29.09.2010, 13:04     Параметры функции по умолчанию
Ответ Создать тему
Опции темы

Текущее время: 05:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru