C++
ankedao
这个作者很懒,什么都没留下…
展开
-
C++ error: forward declaration
c++各个对象之间要相互调用,从A对象调B对象的成员函数,方法是forward declaration,如下面的例子: //file1.h declaration of Aclass A{ public: A(); ~A(); void fun(); ........ private: ........};//原创 2009-10-10 18:05:00 · 1416 阅读 · 0 评论 -
C++ 指针,引用
引用总是指向某个对象,引用定义时必须初始化,引用是变量的别名。int a,c;int &b=a;b=c;//assigns c to a;引用主要做参数传递:void fun(int& ia,double& db ){.....}; int mai(){int a=1;double b=2;fun(a,b);} 经常有int mai原创 2009-10-11 11:00:00 · 243 阅读 · 0 评论 -
C++:相互包含(include)
C++里类之间的相互调用很麻烦,A调用B,B又调用A。特别是A,B不在同一文件的时,得相互包含,include 关系很复杂。可以写成这样://File A.hclass B;class A{public:...privat:...B* b;};//end A.h //File A.cpp#include "B.h"A::A()原创 2009-10-14 16:17:00 · 1497 阅读 · 1 评论 -
C++信号
C++信号C++中各个类之间通讯主要通过指针,得相互include来include去,依赖关系很是复杂头痛。一个简单的方法是用信号来进行通讯:可以在发出信号的类中定义和发出信号,可以设为私有,这样可以防止其他类发出这种信号,而在被调用的类中定义被调用函数。初始化之后再链接信号和被调用函数。如以下使用了sigc++的例子(此例子来自gtkmm development team,以GNU Gen原创 2009-10-16 19:40:00 · 1160 阅读 · 0 评论 -
不会定义 static sigc::signal
因为是c,c++混编,需要在类里定义一个static 的sigc::signal 成员,却发现有undefined reference to `Player::sigPlayState的错误,于前置定义成static的也不行,编译链接都能通过。但却发现回调函数收不到信号。 在类声明外加一个定义即可: class A{ static sigc::signal sig原创 2009-10-27 18:03:00 · 397 阅读 · 0 评论