- 博客(5)
- 收藏
- 关注
原创 不会定义 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
398
原创 C++信号
C++信号C++中各个类之间通讯主要通过指针,得相互include来include去,依赖关系很是复杂头痛。一个简单的方法是用信号来进行通讯:可以在发出信号的类中定义和发出信号,可以设为私有,这样可以防止其他类发出这种信号,而在被调用的类中定义被调用函数。初始化之后再链接信号和被调用函数。如以下使用了sigc++的例子(此例子来自gtkmm development team,以GNU Gen
2009-10-16 19:40:00
1162
原创 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
1504
1
原创 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
245
原创 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
1421
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人