C/C++
cindyna90
这个作者很懒,什么都没留下…
展开
-
继承和成员类型
1.公有继承:a.对基类对象来说,public可见,private成员和protected成员不可见;b.对派生类来说,public和protected成员是可以访问的,private成员是不可以访问的;c.对派生类对象来说,public成员是可见的,protected和private成员是不可见的。2.私有继承:a.对基类对象来说,public可见,private成员和pro原创 2013-09-27 16:21:45 · 506 阅读 · 0 评论 -
用于实现/用于声明的关键字分类
1.inline是用于实现的关键字,一个好的编译器,会根据需要,取消不必要的内联函数,所以inline不用于函数声明;2.static是用于声明的关键字,定义时不需要加static关键字;3.const是用于声明定义的关键字,声明时要求初始化(const成员变量和static const变量除外);4.explicit是用于声明的关键字,声明构造函数不用于隐式类型转换;5.frie原创 2013-09-26 22:29:41 · 2739 阅读 · 0 评论 -
类的构造函数的调用
假如定义了一个类C: class C{public: C(){} C(int k){key=k;} ~C(){}private: int key;} 现在声明类C的对象c1,c2,c3。原创 2013-09-26 16:33:15 · 981 阅读 · 0 评论 -
cin,cin.get(),cin.getline(),getline(),gets(),getchar()
(1)cin:遇空格,TAB或回车结束。int a;cin>>a;char a[20];cin>>a;(2)cin.get():输入字符时有三种调用方式:char ch;ch=cin.get(); //1cin.get(ch); //2cin.get(); //3.用来舍弃不需要的输入字符,或者舍弃回车符输入字符串原创 2013-10-04 11:19:53 · 737 阅读 · 0 评论 -
静态变量
1.static局部变量:记忆功能和文件作用域,默认初始化。2.static全局变量:内部连接,文件之间不会重名。3.static成员变量:所有对象(包括子类对象)共享,一定需要再类体外初始化。特殊特性:static成员对象允许非前向声明;const成员函数可以修改static成员变量;static成员变量可以作为形参类型的默认实参。4.static成员函数:所有对象(包括子类对象)共原创 2013-09-26 15:51:07 · 632 阅读 · 0 评论 -
面向对象编程和面向接口编程
1.面向实现编程与面向接口编程:面向实现编程:对代码逻辑及实现进行编程面向接口编程:对接口进行编程;C++中面向接口编程是通过抽象类来实现的,第一步是类继承复用,第二步是定义具有相同接口的对象族;客户只需要根据抽象类中的接口来操纵对象,无需知道他们使用对象的特定类型,无需知道他们使用对象是通过什么类来实现的。设计模式的设计原则1:针对接口编程,而不是针对实现编程。不将变量声明为某个特定转载 2013-10-11 16:56:45 · 1125 阅读 · 0 评论 -
函数与运算符
1.sizeof是运算符,后面可接变量或者是数据类型;strlen是函数,后面只能接char*,并要求以‘\0’结束。2.malloc和free是c/c++语言的标准库函数,而new和delete是分别负责初始化工作和清理与释放内存工作的运算符。相对于前者,会自动执行对象构造函数和对象的析构函数。附上某CPU生产公司面试题一道,写:一个有十个指针的数组,该指针指向一个函数,该函数有原创 2013-09-21 22:08:53 · 622 阅读 · 0 评论 -
引用与指针
引用与指针的区别:1.指针可以为空,p=0或者p=NULL,引用不能为空,提高了代码执行效率2.指针需要进行合法性测试,if(p),引用不需要3.指针可以改变,引用不可以改变4.指针应用情景:(1)允许为空(2)允许改变值5.引用和const变量一样,必须要初始化。原创 2013-09-21 18:12:55 · 752 阅读 · 0 评论 -
宏
区分下列使用:1.const变量2.宏定义3.内联函数4.普通函数1与2:有无类型安全检查,是否支持调试2与3:有无参数类型检查,是否支持各种工具(排错系统,交叉引用系统,轮廓程序)服务3与4:函数调用/直接代码展开,代码长度,代码执行时间(循环)。类的构造函数和析构函数容易让人误解成使用内联更有效。要当心构造函数和析构函数可能会隐藏一些行为,如“偷偷地”执原创 2013-09-21 18:02:52 · 668 阅读 · 0 评论 -
C++重载
C++重载实现机制——名字修饰C++重载禁止通过返回值重载C++重载的名字修饰机制提供了类型安全连接的安全网,防止函数声明与函数定义不一致的错误出现C++多个重载函数编译之后生成多个不同的目标代码段,从而实现静态编译连接;如果是生成一个目标代码段,则需要再连接进行动态查找。原创 2013-09-21 16:26:21 · 714 阅读 · 0 评论 -
类型转换
dynamic_cast(ptr):用于继承层次之间的相互转换1.用于指向子类对象的父类指针向子类的转换;2.用于指向子类对象的父类指针向交叉子类的转换,转换结果为NULL;3.用于指向子类对象的子类指针向交叉子类的转换,转换结果为NULL;4.用于指向子类对象的子类指针向父类的转换,转换结果不为NULL;5.用于指向子类对象的父类指针想交叉父类的转换,转换结果不为NULL。原创 2013-10-13 11:12:27 · 558 阅读 · 0 评论