1:复制构造函数,在对象定义初始化时,会出现;此时的=不是赋值效果,而是复制构造函数的效果。 2:复制构造函数,定义在私有中,则禁止了操作,除了友元;若在私有中只是声明不定义,则任何都无法调用构造函数 3:容器是有复制构造函数的。 4:类中指针成员有3种处理方式,一是复制指针的值共享所指对象,这样会...
分类:
其他好文 时间:
2014-11-14 17:30:20
阅读次数:
202
C++友元类:
正常情况下,一个类是访问不到另一个类的私有成员的。就像下面这个:
#include
class A{
private:
int a;
public:
A(){
a = 1;
}
};
class B:public A{
public:
B(){
std::cout << a << ...
分类:
编程语言 时间:
2014-11-09 16:43:03
阅读次数:
229
在学习这部分的时候有的地方不懂,有些是摘自网页资料。
1、重载运算符有两种形式,即重载为类的成员函数和重载为类的友元函数。
2、成员函数可以只用一个参数,友元类要有两个参数,把所有操作数通过参数全部传递。
3、++i,--i,前增量是引用返回,没有参数是前置运算。后增量是值返回,后置参数中参数只是一个标识。
4、如果定义了一个对象Cuser user=(2)编译可以通过,那么为了构造函数的...
分类:
编程语言 时间:
2014-11-07 19:07:51
阅读次数:
217
1. 内部类:如果一个类定义在另一个类的内部,这个内部类就叫做内部类。注意此时这个内部类是一个独立的类,它不属于外部类,更不能通过外部类的对象去调用内部类。外部类对内部类没有任何优越的访问权限。
即说:内部类就是外部类的友元类。注意友元类的定义,内部类可以通过外部类的对象参数来访问外部类中的所有成员。但是外部类不是内部类的友元。
2. 内部类可以定义在外部类的public、protect...
分类:
编程语言 时间:
2014-11-04 17:23:23
阅读次数:
181
近日在修改了一下下cocos2d-x的引擎代码(为了自己的组件),发现有些类的访问形式比较怪异,明明有些接口是只有特定类及其内部函数才去访问,却不使用友元声明的形式进行数据访问——当然使用了普通非virtual的形式也就是意味着不建议重载。
故此:
1、建议派生类(或允许)重载的声明为虚函数即virtual类型,
2、强制派生类实现的声明为纯虚函数
3、不希望派生类重载或覆盖的函数则为普通...
分类:
其他好文 时间:
2014-11-03 20:57:22
阅读次数:
196
在类模板中可以出现三种友元声明:(1)普通非模板类或函数的友元声明,将友元关系授予明确指定的类或函数。(2)类模板或函数模板的友元声明,授予对友元所有实例的访问权。(3)只授予对类模板或函数模板的特定实例的访问权的友元声明。(1)普通友元:templateclass A{ friend void f...
分类:
编程语言 时间:
2014-10-29 19:17:39
阅读次数:
226
此文转自C++_友元函数。 1. 引入友元函数原因 在实现类之间数据共享时,减少系统开销,提高效率。 具体来说:为了使其他类的成员函数直接访问该类的私有变量。 即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数。 优点:能够提高效率,表达简单...
分类:
编程语言 时间:
2014-10-22 21:58:11
阅读次数:
280
http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2677&cid=1275题目描述通过本题目的练习可以掌握成员运算符重载及友元运算符重载要求定义一个复数类,重载加法和减法运算符以适应对复数运算的要求,重载插入运算符(using namespace ...
分类:
其他好文 时间:
2014-10-22 21:43:04
阅读次数:
230
问题的提出:我们已知道类具备封装和信息隐 藏的特性。只有类的成员函数才能访问类的私有成员,程式中的其他函数是无法访问私有成员的。非成员函数能够访问类中的公有成员,但是假如将数据成员都定义 为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型...
分类:
编程语言 时间:
2014-10-18 12:28:31
阅读次数:
188