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

Ошибка при создании обьекта класса - C++

Восстановить пароль Регистрация
 
Bangemin
 Аватар для Bangemin
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 99
06.05.2016, 11:18     Ошибка при создании обьекта класса #1
Объясните пожалуйста почему нельзя создать обьект другого класса в private. В чем ошибка ?

Код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Goods{
 
public:
 
    Goods(string, int );
 
};
 
class Buy{
 
private:
 
    Goods goods_in_storage("Storage.txt", 3); // error: expected identifier before string constant|
                                              // error: expected ',' or '...' before string constant|
public:
 
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lawliet1
29 / 32 / 11
Регистрация: 30.09.2011
Сообщений: 202
Завершенные тесты: 1
06.05.2016, 11:29     Ошибка при создании обьекта класса #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
все поля внутри объекта инициализируются после создания объекта...

правильней переписать ваш код так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Goods
{
public:
    Goods(std::string, int);
};
 
class Buy
{
private:
    Goods goods_in_storage = Goods("storage.txt", 3);
 
public:
    Buy () = default;
};
тут используется внутриклассовая инициализация, если ваш компилятор не поддерживает 11 стандарт, то нужно переписать программу как-то так:
C++
1
2
3
4
5
6
7
8
9
class Buy
{
private:
    Goods goods_in_storage;
 
public:
    Buy (): goods_in_storage("storage.txt", 3)
    {  }
};
Bangemin
 Аватар для Bangemin
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 99
06.05.2016, 11:32  [ТС]     Ошибка при создании обьекта класса #3
Большое спасибо, за помощь
Bangemin
 Аватар для Bangemin
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 99
08.05.2016, 10:58  [ТС]     Ошибка при создании обьекта класса #4
Как можно грамотно инициализировать в производном классе объект другого класса ?

Вот код:

C++
1
2
3
4
5
6
7
class Goods{
 
public:
 
    Goods(std::string, int);
 
};
C++
1
2
3
4
5
6
7
8
9
10
11
class Shop{
 
private:
 
    Goods goods_in_storage;
 
public:
 
    Shop(): goods_in_storage(".txt", 3) {}
 
};
C++
1
2
3
4
5
6
7
class Storage : public Shop{
 
public:
 
    Storage(): Shop(): goods_in_storage("Storage.txt", characteristic_count) {}// ERROR
 
};
4AKE
29 / 29 / 12
Регистрация: 20.12.2010
Сообщений: 115
08.05.2016, 18:34     Ошибка при создании обьекта класса #5
C++
1
2
3
4
5
6
7
class Storage : public Shop {
 
public:
 
    Storage() : Shop() {}
 
};
Bangemin
 Аватар для Bangemin
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 99
08.05.2016, 21:29  [ТС]     Ошибка при создании обьекта класса #6
не не то, мне нужно чтобы storage передавал storage.txt вместо .txt, или как-то так
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2016, 21:35     Ошибка при создании обьекта класса
Еще ссылки по теме:

Ошибка при создании шаблонного класса C++
Ошибка при создании класса библиотека: "'fflush' was not declared in this scope" C++
C++ Ошибка при создании класса

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

Или воспользуйтесь поиском по форуму:
4AKE
29 / 29 / 12
Регистрация: 20.12.2010
Сообщений: 115
08.05.2016, 21:35     Ошибка при создании обьекта класса #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Bangemin,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Shop {
 
private:
 
    Goods goods_in_storage;
 
public:
 
    Shop() : goods_in_storage(".txt", 3) {}
    Shop(std::string s, int v): goods_in_storage(s,v) {}
 
};
 
class Storage : public Shop {
 
public:
 
    Storage() : Shop("Storage.txt", 999) {}
 
};
Yandex
Объявления
08.05.2016, 21:35     Ошибка при создании обьекта класса
Ответ Создать тему
Опции темы

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