^ 与 ~区别
void*作用,返回任意类型的指针
条件编译如下:
#ifdef 标识符
程序段1
#else
程序段2
#endif
sizeof(a):返回变量的大小
,:逗号运算符会顺序执行一系列运算。整个逗号表达式的值是以逗号分隔的列表中的最后一个表达式的值。
.或者->:成员运算符用于引用类、结构和共用体的成员
强制转换运算符把一种数据类型转换为另一种数据类型。例如,int(2.2000) 将返回 2。
&:指针运算符 & 返回变量的地址。例如 &a; 将给出变量的实际地址。
*:指针运算符 * 指向一个变量。例如,*var; 将指向变量 var。
函数声明:
int max(int num1, int num2);
传值调用 | 该方法把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数对实际参数没有影响。 |
指针调用 | 该方法把参数的地址复制给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。 |
引用调用 | 该方法把参数的引用复制给形式参数。在函数内,该引用用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。 |
[](int x, int y){ return x < y ; }
引用很容易与指针混淆,它们之间有三个主要的不同:
(1)将变量名作为实参和形参。这时传给形参的是变量的值,传递是单向的。如果在执行函数期间形参的值发生变化,并不传回给实参。因为在调用函数时,形参和实参不是同一个存储单元。// 同 c
(2) 传递变量的指针。形参是指针变量,实参是一个变量的地址,调用函数时,形参(指针变量)指向实参变量单元。这种通过形参指针可以改变实参的值。// 同 c
(3) C++提供了 传递变量的引用。形参是引用变量,和实参是一个变量,调用函数时,形参(引用变量)指向实参变量单元。这种通过形参引用可以改变实参的值
(1)以引用返回函数值,定义函数时需要在函数名前加 &
(2)用引用返回一个函数值的最大好处是,在内存中不产生被返回值的副本。
引用作为返回值,必须遵守以下规则:
下面是一种更简单的定义结构的方式,您可以为创建的类型取一个"别名"。例如:
typedef struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
}Books;
当一个类派生自基类,该基类可以被继承为 public、protected 或 private 几种类型。继承类型是通过上面讲解的访问修饰符 access-specifier 来指定的。
我们几乎不使用 protected 或 private 继承,通常使用 public 继承。当使用不同类型的继承时,遵循以下几个规则:
虚继承:多个派生类保存相同基类的同名成员时,虽可以在不同的数据成员中分别存放不同的数据 ,但我们只需要相同的一份。
解决了多父类重复成员只保留一份的问题。
结构体或者指针使用-> 当访问直接对象的成员或数据时,用“.”
虚函数 是在基类中使用关键字 virtual 声明的函数。在派生类中重新定义基类中定义的虚函数时,会告诉编译器不要静态链接到该函数。
我们想要的是在程序中任意点可以根据所调用的对象类型来选择调用的函数,这种操作被称为动态链接,或后期绑定。
您可能想要在基类中定义虚函数,以便在派生类中重新定义该函数更好地适用于对象,但是您在基类中又不能对虚函数给出有意义的实现,这个时候就会用到纯虚函数。
我们可以把基类中的虚函数 area() 改写如下:
class Shape { protected: int width, height; public: Shape( int a=0, int b=0) { width = a; height = b; } // pure virtual function virtual int area() = 0; };
= 0 告诉编译器,函数没有主体,上面的虚函数是纯虚函数。
const在在函数前与加在函数后区别;const加在前面表示范围的对象或者指针所指向的对象不可改变;加在后面表示不可改变成员变量数据,并且函数里面不可调用非const成员函数;
class与struct区别;如果定义更像是数据结构就用struct;如果更像是一个对象就用class;区别主要是在继承时候的访问权限;默认情况下 子struct默认public继承父struct;而子class默认private继承父class;
new与malloc()
using std::cout;
嵌套命名空间使用:using namespace namespace_name1::namespace_name2;
内联函数 inline
函数模板与类模板
预处理器
条件编译:有几个指令可以用来有选择地对部分程序源代码进行编译。这个过程被称为条件编译。
未完待续。。。