4.参数传递与返回值
1.构造函数被放在private区,在不允许外界创建对象时这么做。确保整个程序中,类A永远只有一个对象存在。
class A
{
public:
static A& getInstance();//获取唯一实例的静态函数
setup() { ... }// 第2行:普通的成员函数(这里省略了实现)
private:
A();// 私有构造函数!外界不能直接 new A()
A(const A& rhs);// 私有拷贝构造函数!禁止拷贝
...
};
A& A::getInstance()// 函数定义,前面要加作用域 A::
{
static A a;// 静态局部变量(核心!)
return a;// 返回这个唯一对象的引用
}
// 调用示例
A::getInstance().setup();
2.参数传递:pass by value vs pass by reference(to const),最好用传引用不要用传value,因为传的快
不用指针是因为会跟着变,用传引用不会跟着变(加了const,没加会跟着变),如果变量编译器会报错

3.返回值传递:pass by value vs pass by reference(to const)

4.friend(友元)

5.相同class的各个object互为友元

6.需要注意的地方
6.1数据一定放在private中
6.2参数尽可能reference来传递,要不要加const看状况
6.3返回值也尽量reference来传递
6.4在类的body中应该加const就务必加
6.5构造函数中的初始化列表尽量用
7.什么情况下不可以用return by reference
不创造新空间时,因为函数结束会消失,此时不能用

浙公网安备 33010602011771号