博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++基础学习-20120515
阅读量:5036 次
发布时间:2019-06-12

本文共 1938 字,大约阅读时间需要 6 分钟。

1---------

带参数的构造函数
B (int i) : data(i);//data=i
冒号后面是成员变量初始化列表member initialization list

2-----------

拷贝构造函数的实现
int length=strlen(other.m_data)//原始数据的长度
m_data=new char[length+1];//开辟一段内存区域
strcpy(m_data,other.m_data,length*sizeof(int));//拷贝数据到内存区域

3--------赋值函数实现字符串的传值

string &operate=(const string &other)原型声明

4-----------

派生类对象为什么可以对基类数据成员进行操作?
类对象操作的时候,内部对象会产生一个隐形的指针this,当子类对象创建的时候。
this指针就会覆盖父类的范围,因此可以操作父类

5------c++默认的继承方式是private的

保护继承与私有继承的区别
对派生类的成员而言,基类成员对其对象的可见性与一般类及其对象的可见性相同,公有成员可见,私有成员不可见-----没看懂说的啥???

6---------虚函数继承与虚继承的区别??

如果类中有虚函数,那么必须有一个虚函数表来记录对应的函数入口地址,每个地址需标有虚指针,大小为4字
虚函数继承-----------
class a
{
char k[3];
public :
virtual void aa(){};
};
sizeof(a)=4+4
class b:public virtual b
{
char i[3];
public :
virtual void cc(){};

};

sizeof(b)=8+8;

虚继承-------------节省内存空间,

class a;//a就是虚基类
class b:public virtual a;
class c:public virtual b;
class d:public b,public c;

7-------------------鸵鸟不会飞怎样继承鸟类的部分属性的问题,而不继承飞的属性
组合的方法,把鸟类中可以被鸵鸟继承的函数挑出来

class bird

{
public:
 void eat();
 void sleep();
 void fly();
};
class tuoniao
{public:
bird eat(){cout<<"tuoniao eat;"}
bird sleep(){cout<<"tuoniao sleep;"}
};
int main()
{
tuoniao t;
t.eat();
t.sleep();

8---------------

虚函数的入口地址与普通函数有什么不同??
每个虚函数都在vtable表中占了一个表项,保存着一条跳到它入口地址的指令,当一个包含虚函数的对象被创建的时候,在它的头部附加一个指针,指向vtable中相应的位置,调用虚函数时,不管是用什么指针调用的,它先根据vtable找到入口地址再执行,
实现了动态联编,不像普通函数那样简单跳到一个固定地址。。。

9------

Q&A;
1阻止一个类被实例化---------将类设为抽象类或者将类的构造函数设为private;
2什么时候构造函数会被声明为private-----------阻止编译器生成默认的copy constructor的时候;
3什么时候会生成默认的copy constructor----------自己没写,程序就会自己生成默认的;
4

 

10-------------

RTTI=runtime type information执行时期的类型信息
作用:动态判别执行时期的类型,typeid运算符能让程序员确定对象的动态类型;
返回值是type_info常量对象的引用;

11--------

static的作用
1:函数体内的static内存至分配一次,下次使用时仍维持上次的值;
2:模块内的static全局变量可以被模块内的所有函数访问,但不能被模块外的其他函数访问;
3:模块内的static函数,只能被这一模块的其他函数调用,使用范围限制在这一模块内;
4:类中的static变量属于整个类,对类的所有对象只维护这一份拷贝;
5:类的static成员函数属于这个类,这个函数不接受this指针,因此只能访问类的static成员变量;

转载于:https://www.cnblogs.com/fickleness/p/3148975.html

你可能感兴趣的文章
局域网中电脑之间无法ping通问题
查看>>
UVA 12716 GCD XOR
查看>>
Django 配置MySQL数据库
查看>>
零基础/ASP.NET(一)
查看>>
criteria完整用法
查看>>
iOS-正则表达式的运用
查看>>
strongswan--函数定义宏
查看>>
SpringMVC快速入门记录(一)
查看>>
【计算机视觉】如何使用于仕琪老师的libfacedetect人脸检测库
查看>>
第六周总结表
查看>>
接口 代码分析
查看>>
hihoCoder week13 最近公共祖先·一
查看>>
排序算法总结
查看>>
线程的几个状态转换
查看>>
HashMap 底层分析
查看>>
51nod1174【基于线段树的RMQ】
查看>>
POJ-1143(状态压缩)
查看>>
Log4j、Log4j 2、Logback、SFL4J、JUL、JCL的比较
查看>>
算法导论,第一节第二节课总结
查看>>
基于SSH协议的端口转发
查看>>