看视频课程:C++面向对象编程
第1节c++概述
第2节C++快速入门
1.以#开始的,被称为预处理指令;
而include是指
编译前将<>内的文件提取到当前文件
2.std是一个命名空间
std::cout std::cin
写起来比较麻烦,可以加 using namespace std;
这样可以直接写cout cin
3.三元运算符
A?B:C if(A){B}else{C}
4.数组的使用:
头文件 #include<vector>
声明一维数组,vector<int> c;
声明二维数组,vector<vector<int> > array;
则二维数组的行数与列数,代码如下:
int rowcount = array.size();
int colcount = array[0].size();
5.字符串的使用:
头文件 #include<string>
有了string,C++比C方便了很多
6.函数:
函数重载(参数类型、个数不同)、
内联函数(关键字inline ,代码较短,频繁被调用,调用形式变成了代码嵌入)
7.C++的内存分为两部分:堆和栈
栈:局部变量、函数参数都是栈中分配的,函数调用也是由栈实现的(C语言)
堆:从操作系统批发内存的零售商,应用程序向操作系统申请内存的代价很大,由此引入了堆,随着应用程序生与亡
(1)C语言:用malloc 从堆分配空间
if语句判断是否成功分配空间
free(p);释放堆空间
p=NULL;将其置为空指针,防止误用,不然称为野指针会错。
(2)C++语言:用new 从堆分配空间
8.引用:变量的别名,指向同一个区域,一个变化另一个也变化
引用必须在定义的同时就初始化。初始化之后,不能再更改引用,可用于函数参数传递
9.标准模板库STL
第3节VS2010开发环境介绍
调试:
断点设置(调试时程序在断点前停下)F9
继续:F5
单步进入(逐语句F11)与单步调试(逐过程F10),在一般语句时是一样的,遇到函数时不同
Debug版(调试)与Release版(发布)
第4节标准流输入输出
1.endl的作用换行和刷新缓存区
flush只是刷新缓存区
cout<<"Hello World!"
2.注意使用进制转换时,不换的话默认保持之前的进制
第5节标准库string类型
实例:简单的文本编辑器(按输入格式,换行输出,并计算字符数和行数)
getline(cin, str1) 函数可以获得一行的输入
const char* p = str.c_str();
可以获得str的
指针但不要去使用它!!
第6节标准库vector类型
实例:简单的文本编辑器(按输入格式,加行号换行输出,并计算总字符数和各行字符数)
第7节再谈函数
void swap(int& a, int& b)
{
int temp = a;
a = b;
b = temp;
}
//一个比较大的结构体
typedef struct
{
int a;
int b[1000];
}BigStruct;
//引用作为函数的参数
//这个函数中形参是BigStruct类型,比较大
//形参赋给实参需要拷贝,这里用引用就可以不用拷贝了
//const 可以防止它被修改
void func1(const BigStruct& a)
{
//xxxx
}
//引用作为函数的返回值
//这里用引用就可以不用拷贝了
//const 可以防止它被修改
const BigStruct& func2(const BigStruct& a)
{
//xxxx
}
template <typename T>
T add(T a, T b)
{
return a + b;
}