C++primer难点之类
2014-03-05 22:24
225 查看
类的难点解析:
类三大特性:继承,多态,封装
访问权限控制:public private protect
Inline成员函数:1 在类内部定义的成员函数,将自动被作为inline处理
2 如果是显示声明inline 即不放在类定义体内,该函数定义应该放在.hl文件里,因为它对于使用它的,cpp文件要可见,仅仅声明是不够的。
3 inline关键字的指定既可以在类里面声明时指定也可以在类外面定义指定。
4 定义lnline函数有3中方法。
不完全类型:如果该类是不完全的,则其数据成员只能是指向此类的指针或引用。
Class Note
{ int a; Note *pte; Note &pte};
编程常见例题:定义两个类 X和Y,X中有一个指向Y的指针,Y中有一个X类型的对象。
Class Y; Class X{Y * py}Class Y{X objx; }
This 指针:百年避不开的话题 :何时需要用到this呢?
当我们需要将一个对象作为整体引用时:就需要
Screen& Screen::move(int x)
{
Return *this;
}
这样之后可以通过move函数获取对象其他的成员:obj.move().move();
Const函数:const对象只能使用const成员 ,给予const关于指针和引用可以重载。
Const成员函数等价于constthis 常量成员函数
类的作用域:
l 函数的返回类型不一定在类的作用域中详情看C++primer第四版 P381
类作用域的名字查找顺序:1 先检查成员函数局部作用域中的声明:注意函数参数的声明
2检查所有类成员的声明
3检查此成员函数定义前的作用域 例如全局变量
如果函数中的成员变量被参数屏蔽,可以通过this等手段引用
构造函数:1构造函数: 由于常量构造函数的缘故所以不需要Const构造函数。
2初始化列表:初始化顺序是以类中声明的为主。
3不带参数的构造函数与只有一个参数的构造函数(但是有默认实参)导致默认构造函数有歧义
Static类成员:不是类对象的组成部分
Static成员函数:不能声明为Const也不能声明为虚函数,没有this指针。
Static数据成员:必须在定义体的外部定义并且初始化,且关键字static只能在类中声明,但是有一个例外const static 数据成员可以在类的定义体中初始化,但是其任然需要在类的定义体外面定义但是此时可以不提供初始值,另外static数据成员可以做默认实参。
个人意见,有不对的地方欢迎指出
类三大特性:继承,多态,封装
访问权限控制:public private protect
Inline成员函数:1 在类内部定义的成员函数,将自动被作为inline处理
2 如果是显示声明inline 即不放在类定义体内,该函数定义应该放在.hl文件里,因为它对于使用它的,cpp文件要可见,仅仅声明是不够的。
3 inline关键字的指定既可以在类里面声明时指定也可以在类外面定义指定。
4 定义lnline函数有3中方法。
不完全类型:如果该类是不完全的,则其数据成员只能是指向此类的指针或引用。
Class Note
{ int a; Note *pte; Note &pte};
编程常见例题:定义两个类 X和Y,X中有一个指向Y的指针,Y中有一个X类型的对象。
Class Y; Class X{Y * py}Class Y{X objx; }
This 指针:百年避不开的话题 :何时需要用到this呢?
当我们需要将一个对象作为整体引用时:就需要
Screen& Screen::move(int x)
{
Return *this;
}
这样之后可以通过move函数获取对象其他的成员:obj.move().move();
Const函数:const对象只能使用const成员 ,给予const关于指针和引用可以重载。
Const成员函数等价于constthis 常量成员函数
类的作用域:
l 函数的返回类型不一定在类的作用域中详情看C++primer第四版 P381
类作用域的名字查找顺序:1 先检查成员函数局部作用域中的声明:注意函数参数的声明
2检查所有类成员的声明
3检查此成员函数定义前的作用域 例如全局变量
如果函数中的成员变量被参数屏蔽,可以通过this等手段引用
构造函数:1构造函数: 由于常量构造函数的缘故所以不需要Const构造函数。
2初始化列表:初始化顺序是以类中声明的为主。
3不带参数的构造函数与只有一个参数的构造函数(但是有默认实参)导致默认构造函数有歧义
Static类成员:不是类对象的组成部分
Static成员函数:不能声明为Const也不能声明为虚函数,没有this指针。
Static数据成员:必须在定义体的外部定义并且初始化,且关键字static只能在类中声明,但是有一个例外const static 数据成员可以在类的定义体中初始化,但是其任然需要在类的定义体外面定义但是此时可以不提供初始值,另外static数据成员可以做默认实参。
个人意见,有不对的地方欢迎指出
相关文章推荐
- C++中的vector使用范例
- C/C++主函数的定义(return的作用)!
- C++ 读取多行带空格的字符串,以EOF结束
- 初始C++
- 写给C语言新手的话
- 黑马程序员03——C语言之文件操作模式
- C++ int 转换成string
- 重新认识c++(01),做个简单的复数Complex类
- C++ 重载函数模板
- C++模版的特化
- Thinking in C++读书笔记(三)---C++中的C
- 学习c++的优秀博客(更新ing)
- C语言之三联符
- C++ 成员变量的内存分配
- 记忆化搜索算法之动态规划
- C/C++中int/long/float/double数值类型与字符串互相转换[总结]
- 【C/C++】关联容器pair map set
- C++链表
- c++继承中的内存布局
- 当OpenCV编译遇到"无法解析的外部符号"时(编译peopledetect.cpp)