首页 > 代码库 > 类成员只声明不实现,调用时会怎么样?

类成员只声明不实现,调用时会怎么样?


测试结果是private和public两种情况是不同的。

测试代码是

class onlyDeclare
{
private:
	void priFunc();
public:
	void pubFunc();
};


void test()
{
	onlyDeclare od;
	//od.pubFunc();//对‘onlyDeclare::pubFunc()’未定义的引用
	//od.priFunc();//‘void onlyDeclare::priFunc()’是私有的
}

如果是private,在编译阶段就会报错:‘void onlyDeclare::priFunc()’是私有的


如果是public,则会通过编译阶段,在链接阶段报错:对‘onlyDeclare::pubFunc()’未定义的引用


有种常用的做法,为了禁掉一个类的拷贝函数和等号操作符,可以将他们声明为私有,但是不用定义。