#include <cstdlib>
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
class Portfolio{
public :
Portfolio(){};
private:
Stock stocks[100];
void load_self(){}
void save_self(){}
};
class Stock {
public:
Stock(int val , int amo , string db , string symbol){
this->set_value(val);
this->set_amount(amo);
this->set_date(db);
this->set_symbol(symbol);
}
void set_value(int vlue){this->value=vlue;}
void set_amount(int am){this->amount=am;}
void set_date(string d){this->date_bought = d;}
void set_symbol(string symb){this->symbol = symb;}
private:
int value;
int amount;
string date_bought;
string symbol;
};
int main(int argc, char *argv[])
{
return EXIT_SUCCESS;
}
ответ
У вас есть две проблемы.
- Как уже отмечалось, измените порядок деклараций классов, чтобы Фондовый отчет был полностью определен до Портфеля.
- Вам нужно определить подходящий конструктор по умолчанию, так что со может быть создан с помощью
Stock stocks[100]
Для решения второй вам нужно что-то вроде этого:
class Stock {
public:
Stock() {}; // Could add suitable defaults here.
// Whatever else....
}
Вы должны объявить класс Stock
первым, еще до объявления Portfolio
.
Участник Stock stocks[100];
представляет собой массив объектов Stock
, поэтому полная реализация класса должна быть известна до Portfolio
, которой это не так. Переместите объявления вокруг, и он должен работать.
За исключением того, что у запаса нет подходящего конструктора, так что он все равно будет терпеть неудачу. – talonmies
Он просто говорит: «Нет соответствующего вызова функции в Stock :: Stock()» – Monkeyanator
@Monkeyanator определяет конструктор по умолчанию. Если вы определяете конструктор для класса, то по умолчанию он не будет сгенерирован. –
Класс Stocks
должен быть определен доPortfolio
один. Или иначе, при использовании он будет не определен.
Он просто говорит: «Нет соответствующего вызова функции в Stock :: Stock()» – Monkeyanator
Ах, это потому, что класс 'Stock' не имеет конструктора по умолчанию. Поэтому вы не можете объявить массив-член такого типа. Вы должны добавить конструктор по умолчанию в 'Stocks'. Или, возможно, подумайте об изменении члена 'stock' в массив указателей или' std :: vector' или что-то подобное. – rodrigo
- 1. Родительский класс внутри другого класса
- 2. Как объявить класс по типу другого класса
- 3. Использовать класс внутри другого класса?
- 4. уничтожить класс внутри другого класса
- 5. Объект класса внутри другого класса
- 6. Класс не может объявить тип
- 7. Невозможно создать шаблонный класс внутри другого класса
- 8. Класс Java внутри другого класса, конструктор
- 9. C# создать класс внутри другого класса
- 10. css класс внутри другого класса как свойство
- 11. Класс, объявленный внутри другого класса в C#
- 12. Ориентация на класс, когда внутри другого класса
- 13. Ошибка ссылки Класс внутри другого класса
- 14. Как получился класс Thread внутри другого класса?
- 15. Как назвать класс внутри другого класса?
- 16. Как скрыть класс внутри другого класса ruby
- 17. Encapsulate класс MessageBox внутри другого класса
- 18. css изменить класс свойства внутри другого класса
- 19. Как использовать класс внутри другого класса?
- 20. Как вызвать класс внутри другого класса?
- 21. Невозможно объявить тип поля класса другого класса
- 22. Ошибка класса: не удалось объявить класс
- 23. Объявление класса внутри другого класса
- 24. Класс внутри класса
- 25. Включенный класс внутри другого класса не объявлен PHP
- 26. вызов функции другого класса внутри класса
- 27. Почему один класс внутри класса не входит в сферу действия другого класса внутри класса?
- 28. Как объявить var внутри класса внутри C#?
- 29. C++ Класс внутри другого класса с указателем на первый класс
- 30. Определения машинописных описаний: как объявить класс внутри класса
Что такое сообщение об ошибке? –