Строка В Конструкторе

Тема в разделе "C/C++/C#", создана пользователем fuzzyduzzy, 1 фев 2013.

  1. fuzzyduzzy

    fuzzyduzzy New Member

    Регистрация:
    22 янв 2013
    Сообщения:
    3
    Симпатии:
    0
    Как правильно описывается тип строки в конструкторах?

    есть класс
    Код (C++):
    class directory{
    char firm_name[30];
    char owner[40];
    int phone;
    string adress;
    char activity[30];
    public:
    directory();
    void setDirectory(char [], char [], int, string, char []);
    void Show();
    };

    Код (C++):
    directory::directory(){
    char firm_name[] = {0};
    char owner[] = {0};
    int phone = 0;
    string adress = '\0';
    char activity[] = {0};
    }

    void directory::setDirectory(char f[30], char o[40], int p, string a, char act[30]){
    strcpy(firm_name, f);
    strcpy(owner, o);
    phone = p;
    string ????;

    }
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    Код (Text):
    directory::directory(){
    char firm_name[] = {0};
    char owner[] = {0};
    int phone = 0;
    adress = '\0'; //////!!!!
    char activity[] = {0};
    }

    void directory::setDirectory(char f[30], char o[40], int p, string& a, char act[30]){
    strcpy(firm_name, f);
    strcpy(owner, o);
    phone = p;
    adress = a; //////!!!!
    }
    не совсем понял в чем проблема вообще
     
  3. fuzzyduzzy

    fuzzyduzzy New Member

    Регистрация:
    22 янв 2013
    Сообщения:
    3
    Симпатии:
    0
    спс.. забыл что строка через адрес передается)))

    Еще тут подумал лучше сделать весь класс через строки...
     
  4. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    "через адрес" передавать лучше все, но если передавать по значению - то тоже ошибки не будет, просто лишний раз копироваться данные будут (ну и уничтожаться тоже соответственно)
     
Загрузка...

Поделиться этой страницей