1>:c++结构
包含:
1.STL (标准模板库Standard Template Library)
2.template
3.object-oriented
4.c++ ox/c++11
注:CLI符合.net运行标准,可以使用.net类库。
2>:转移构造函数
含义:移交对象资源的所有权。
例:
class object{
public:
int res;
};
object obj1.res;
void funl(object obj1.res);
//转移构造函数做的则是将obj1.res
//的所有权移交给了形参,并没有拷贝;
3>类对象初始化与赋值
初始化:例A a(10); //调用拷贝构造函数;
赋值 :例
A a;
A b;
b = a; //等价与 b.operator =(a);即调用运算符重载函数operator =(A a);
4>“::”:作用域限定运算符;
c++中全局作用域为空;
例:
class A{
public:
A();
};
int g_value = 0;
void funl()
{
int g_value = 10;
printf("%d\n",::g_value)//调用全局变量g_value;
printf("%d\n",g_value)//调用局部变量g_value;
}
5>头文件
作用:找到文件,拷贝在当前位置;
#include " ":表示从当前项目路径下搜索,找不到再跳到安装路径下查找;
#include < >:表示从安装路径下查找文件;
#pragma once //防止头文件重复包含;
预处理命令(3种):'#'独占一行
1.宏 (例:#define SERV 5566)
2.头文件 (例:#include <stdio.h>)
3.条件编译(例:
#ifdef _XXX
#define _XXX
#endif
)
4.iostream.h与iostream的区别
后者包含在命名空间std中,而前者则是全局的;
6>c中的scanf和printf
1.printf----print f:format(格式)
格式化输出:%s:一直输出字符直到遇见‘\0’即结束;
2.scanf---
例:
int n;
scanf("%d",&n);//输入n;
注: 参数二要传地址,因为要改变n的值,而不仅仅只限与函数内;
7>关于cin和cout
1. 是类istream和ostream的private成员;
故不能用拷贝构造函数直接拷贝初始化;
2.cout<<"Hello World!"<<endl;
其中:
a.cout<<"Hello World!":表示将数据放到缓存中,并返回回车;
b.endl:表示将缓存中的数据放到屏幕显示;
c.<< :双目运算符;返回做操作数的引用,即cout的引用
附:
关于缓存:
i.行缓存:遇到回车缓存推出;例cout
ii.全缓存:例:FILE 4086个字节,全部用完即返回;
iii.无缓存:例cerr 直接输出 ;(输出错误信息);
8>输入/输出 格式控制
1.#include <iomanip>
2.setw(2) //设置显示行宽度;
setfill('#') //设置填充字符;
9>引用
数组的引用:
例:
int a[5] = {1,2,3,4,5};//数组类型为int [5];
int (&arr)[5] = a; //数组元素类型为int;
typeof(arr); //输出数组arr的类型;即int [5];
10>双指针与引用
1.双指针实例:
void fun1(char **pval)
{
*pval = (char*)malloc(256);
}
int main()
{
char *p;
fun1(&p);
*p = "xiha00";
return 0;
}
2.引用:
(必须初始化,初始化后不能再引用其他变量)
功能:
i.提高效率;
ii.为了简便;
例 :
void fun1(char &tmp1,char &tmp2)
{
int temp;
temp = temp1;
temp1 = temp2;
temp2 = temp;
}
int main()
{
int p1,p2;s
p1 = 3;
p2 = 4;
fun1(p1,p2);
return 0;
}