随笔分类 - C/C++
摘要:一、C++多态 C++的多态包括静态多态和动态多态。静态多态包括函数重载和泛型编程,动态多态包括虚函数。静态多态是指在编译期间就可以确定,动态多态是指在程序运行时才能确定。 二、虚函数 1、虚函数为类的非静态成员函数,访问权限一般为public。函数声明时,在返回值前加virtual关键字,函数定义
阅读全文
摘要:一、成员访问权限控制 1、public (1)public成员变量可以被成员函数访问 [访问性] (2)public成员可以被实体对象访问 [访问性] (3)public成员可以成为子类成员 [对子类的继承性] 2、protect (1)protect成员变量可以被成员函数访问 [访问性] (2)p
阅读全文
摘要:1.概述 结构体变量的成员在内存里是如何分布的、成员先后顺序是怎样的、成员之间是连续的还是分散的、还是其他的什么形式?这些问题既和软件相关又和硬件相关。所谓软件相关主要是指和具体的编程语言的编译器的特性相关,编译器为了优化CPU访问内存的效率,在生成结构体成员的起始地址时遵循着某种特定的规则,这就是
阅读全文
摘要:一、概述 C++预定义的运算符的操作对象只能是基本数据类型,但是实际上许多用户自定义类型(例如类),也需要类似的运算符操作,C++可以通过运算符重载来满足这种需求。运算符重载本质就是函数重载,也是C++多态的一种形式。运算符重载是通过创建运算符函数实现的,和其他函数类似,唯一的区别是函数名为关键字o
阅读全文
摘要:一、概述 不同基本数据类型间可以进行类型转换。有的可以自动类型转换,例如将int类型值赋值给long型变量。对于完全不兼容的类型,如果要进行类型转换只能通过强制类型转换。同样的,类类型也可以与其他数据类型进行类型转换。 二、自动类型转换 如果类定义了一个构造函数,这个构造函数只有一个参数,则可以将参
阅读全文
摘要:1、存储持续性 C++使用四种不同方案来存储数据,它们的区别在于数据在内存中保留的时间,也叫做存储持续性 (1)自动存储持续性 在函数定义中声明的变量,包括函数参数。 (2)静态存储持续性 在函数定义外和使用关键字static定义的变量。它们在程序整个运行过程中都存在。 (3)线程存储持续性 在C+
阅读全文
摘要:一、std::auto_ptr 1、auto_ptr的构造函数接受原始指针作为参数,虽然它是一个对象,但是重载了operator*和operator->,可以把它用在大多数普通指针可用的地方。当退出作用域时,auto_ptr对象的析构函数会释放原始指针。 例: int main { auto_ptr
阅读全文
摘要:一、const成员函数 class MyClass { public: void fun() const { } private: int m_nValue; } const成员函数内不能修改成员变量的值,也不能调用非const成员函数。const对象只能调用const成员函数。 二、mutable
阅读全文
摘要:1.枚举类型的作用我们在写程序的时候,常常需要定义一组与对象相关的属性。例如某个函数形参类型定义为枚举类型,如果传递实参的时候不是枚举类型定义的枚举子,则编译出错,即使传递的值和枚举子的值一样,也会报错,除非强制转换成枚举类型。2.枚举类型的定义enum [enumeration name]{enu...
阅读全文
摘要:1.复制构造函数可用于:(1)根据另一个同类型的对象显示或隐式初始化一个对象string str1="test"; //隐式string str2=str1; //显示str1为先调用string的字符串形参的构造函数,创建一个临时对象,然后,使用string复制构造函数将str1初始化为那...
阅读全文

浙公网安备 33010602011771号