测试结果是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()’未定义的引用
有种常用的做法,为了禁掉一个类的拷贝函数和等号操作符,可以将他们声明为私有,但是不用定义。
本文探讨了C++中私有(private)与公有(public)成员函数的区别。私有成员函数无法在类外部直接访问,编译时会报错;而公有成员若未定义,在链接阶段会报错。文中还介绍了如何通过声明为私有来禁用拷贝构造函数和赋值操作符。
1799





