第四五章:5: Hiding the Implementation Thinking in C++ V1

第四章的部分内容:

::    (作用域解析运算符):指定所定义的函数所属的范围。stash::link::add() 说明定义的add()函数属于stash中的link结构。

      如果在变量或函数之前使用 ::  说明函数或变量时是全局变量和函数,不是本类或结构体中的与全局变量同名的函数和变量。

      此操作符只用于类或结构,不能用于他们的实例,因为这是没有意义的,只用改变类或结构才会改变他们的实例(类和结构

      像模板,而实例相当于他们的拷贝,只有模板变量,拷贝才会变)。

 

C++访问控制:

class中默认的成员为private而struct中的成员默认是public。

 

public访问说明符意味着在其下的声明对所有人都是可用的。

 

private关键字从另一个方面来说,意味着除了类的创建者,其他人都不能访问私有的(private)内容。

 

protected的行为和private很像,但两者有一点不同:在继承中,私有的内容不能被访问,但protected内容可以被访问。

 

构造函数与析构函数均为public成员,因为析构函数与构造函数均由系统自动调用,而调用的方式是在对象定义处与包含对象的右括号处由编译器自动插入调用构造与析构函数的语句。此时这两个函数相当于在对象的外部执行,其必须为public。

 

如何让一个非成员函数更改某个结构中的成员?这可以通过在结构中声明友元实现。

 

在所有关系中一个非常重要的规则是“谁能访问我的私有成员?”

 

posted @ 2015-01-11 22:12  jiahu  阅读(105)  评论(0)    收藏  举报