razb
это мягко говоря через жопу =) главная трабла что по сути ты аналог синглетона делать задумал. т.е. приватить надо не только дефолтный конструктор. еще копирования и перегрузку оператора =. Что не есть очень удобно и красиво.
razb, я прочитал не отредактированный вариант твоего сообщения, когда свой написал - твой пост уже был обновлен =)
Я еще не дочитал до дружественных отношений классов...
это мягко говоря через жопу =) главная трабла что по сути ты аналог синглетона делать задумал. т.е. приватить надо не только дефолтный конструктор. еще копирования и перегрузку оператора =. Что не есть очень удобно и красиво.
По поводу удобства еще можно поспорить если классы очень объемные то удобней разнести по разным файлам и обьявить такую связь.
Также если данный класс используется не только одним другим классом например.
Цитата:
т.е. приватить надо не только дефолтный конструктор. еще копирования и перегрузку оператора =.
З.Ы. я сначала сделал не совсем так как ты написал и мучался долго с ошибками, потом обратил внимание, что private объявлен раньше public. Переделал и помогло! Не думал что это может как-то повлиять
З.Ы.Ы. Еще никогда у мну не было таких конструкций:
Код:
LIST::DATA* LIST::DATA::GetPrev()
и
LIST::DATA::DATA(int* aValue, char* aText, DATA* aPrev, int num)
Как создать программу(.exe) исли у тебя есть входной файл
#include <iostream.h>
int main(){
int a, b, res;
char op;
cout << "\nВведите 1й операнд :"; cin >> a;
cout << "\nВведите знак операции : "; cin >> op
cout << "\nВведите 2й операнд : "; cin >> b
bool f = true;
switch (op){
case '+' : res = a + b; break;
case '-' : res = a - b; break;
case '*' : res = a * b; break;
case '/' : res = a / b; break;
default : cout <<"\nНеизвестная операция"; f = false;
}
if (f) cout << "\nРезультат : " << res;
return 0
}