class First
{
public:
First() {}
~First() {}
int test() {return 0;}
private:
Second * obj1;
};
class Second
{
public:
Second() {}
~Second() {}
int test2() {return 0;}
private:
First * obj2;
};
int main()
{
First a;
return 0;
}
Sets, а компилятор поставить - никак?
С точки зрения логики ничего крамольного не написано. Просто будет создаваться экземпляр класса First, в котором есть место под указатель на экземпляр класса Second, но на этом месте ничего не будет.
#include <iostream>
class Second;
class First{
private:
Second *obj1;
public:
First(){};
~First(){};
int test(){return 0;}
};
class Second{
public:
Second(){};
~Second(){};
int test2() {return 1;}
private:
First obj2;
};
int main()
{
First a;
std::cout << a.test() << '\n';
return 0;
}
P.S. Почитайте-ка сначала литературу, а потом уж за С++ беритесь.
sets@admin:~/progs/cpp/1$ cat 2.cpp
#include <iostream>
class Second;
class First
{
public:
First() {}
~First() {}
int test();
private:
Second * obj;
};
class Second
{
public:
Second() {}
~Second() {}
int test2() {return 2;}
private:
First * obj;
};
int First::test()
{
obj = new Second();
int a;
a = obj->test2();
std::cout << a << std::endl;
delete obj;
obj=0;
}
int main()
{
First a;
a.test();
return 0;
}
0;sets@admin: ~/progs/cpp/1sets@admin:~/progs/cpp/1$ g++ 2.cpp
sets@admin:~/progs/cpp/1$ ./a.out
2
тут он тоже не поставил ; в кострукторе, так как правильно писать на самом деле?
Все правильно, First() {} - конструктор с пустым телом, а ставить ; надо только при объявлении функции/конструктора/деструктора, при их реализации можно этого не делать.
Все правильно, First() {} - конструктор с пустым телом, а ставить ; надо только при объявлении функции/конструктора/деструктора, при их реализации можно этого не делать.
Спасибо большое, так и думал... а то накинулись на меня ни за что мол книжки читать надо, при том что я их читаю