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成员变量;

C++基础学习-20120515的更多相关文章

  1. salesforce 零基础学习(五十二)Trigger使用篇(二)

    第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...

  2. 如何从零基础学习VR

    转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...

  3. IOS基础学习-2: UIButton

    IOS基础学习-2: UIButton   UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...

  4. HTML5零基础学习Web前端需要知道哪些?

    HTML零基础学习Web前端网页制作,首先是要掌握一些常用标签的使用和他们的各个属性,常用的标签我总结了一下有以下这些: html:页面的根元素. head:页面的头部标签,是所有头部元素的容器. b ...

  5. python入门到精通[三]:基础学习(2)

    摘要:Python基础学习:列表.元组.字典.函数.序列化.正则.模块. 上一节学习了字符串.流程控制.文件及目录操作,这节介绍下列表.元组.字典.函数.序列化.正则.模块. 1.列表 python中 ...

  6. python入门到精通[二]:基础学习(1)

    摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分 ...

  7. CSS零基础学习笔记.

    酸菜记 之 CSS的零基础. 这篇是我自己从零基础学习CSS的笔记加理解总结归纳的,如有不对的地方,请留言指教, 学前了解: CSS中字母是不分大小写的; CSS文件可以使用在各种程序文件中(如:PH ...

  8. Yaf零基础学习总结5-Yaf类的自动加载

    Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...

  9. Yaf零基础学习总结4-Yaf的配置文件

    在上一节的hello yaf当中我们已经接触过了yaf的配置文件了, Yaf和用户共用一个配置空间, 也就是在Yaf_Application初始化时刻给出的配置文件中的配置. 作为区别, Yaf的配置 ...

随机推荐

  1. 为什么需要设置pythonpath环境变量?

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #为什么需要设置pythonpath环境变量? #只需设置pythonpath,从而可以从正在用的目录(也就是 ...

  2. Redis学习(8)-redis其他特性

    消息订阅与发布 subscribe Channel:订阅频道 psubscribe channel*:批量订阅频道:例如:psubscribe S*,订阅以S开头的频道. publish channe ...

  3. 为什么WEB-INF外的jsp无法根据cookie享受国际化

    243行走WEB-INF外则获取为空,走springmvc则可以获取到:

  4. php计算经纬度间的距离

    <?php //根据经纬度计算距离 function getdistance($lng1,$lat1,$lng2,$lat2) { //将角度转为狐度 $radLat1=deg2rad($lat ...

  5. IT常用设备及服务器安全公告或漏洞地址pa安全预警微软安全公告 HP 安全公告AIX 安全公告REDHAT安全公告ORACLE 安全公告F5 安全公告 Cisco 安全公告Juniper 安全公告 VMware 安全公告IOS 安全公告

    IT常用设备及服务器安全公告或漏洞地址: 微软安全公告 https://technet.microsoft.com/en-us/library/security/MS14-085 HP 安全公告 ht ...

  6. eclipse 中使用中文JAVA api文档

    http://hi.baidu.com/danghj/item/7625a1be20946e43ba0e1202在eclipse中使用中文JAVA api文档Sun 官方的中文版 Java API 文 ...

  7. Android应用的自动升级、更新模块的实现

    我们看到很多Android应用都具有自动更新功能,用户一键就可以完成软件的升级更新.得益于Android系统的软件包管理和安装机制,这一功能实现起来相当简单,下面我们就来实践一下.首先给出界面效果: ...

  8. RabbitMQ消息队列(二):"Hello, World"[转]

    2. Sending 第一个program send.cs:发送Hello world 到queue.正如我们在上篇文章提到的,你程序的第9行就是建立连接,第12行就是创建channel,第14行创建 ...

  9. Eureka常见问题总结

    在Spring-cloud做微服务架构时,会碰到各种坑.下面总结一下Eureka的常见问题. 一.Eureka的自我保护模式   如果在Eureka Server的首页看到以下这段提示,则说明Eure ...

  10. Python rfind()方法

    描述 Python rfind() 返回子字符串最后一次出现在字符串中的索引位置,该方法与rindex() 方法一样,只不过如果子字符串不在字符串中不会报异常,而是返回-1. 语法 rfind() 方 ...