c++基础总结
简单例子
#include <iostream>
using namespace std;
// main() 是程序开始执行的地方
int main()
{
cout << "Hello World"; // 输出 Hello World
return 0;
}
* 指针和& 引用
int a=1;//定义int a
int *p=&a;//定义指针p=引用a
int a=1;//定义int a
int &b=a;//定义引用b=a
转型
int i = 6;
i = 7.6 + i; //俩次转换,一次dobule 第二次int
int(89.33)
float(56)
//方法形参
compl(double r,double i)
//域实现
complex::complex(double r){cout<<r}
//定义类
#include <iostream>
using namespace std;//引用空间
namespace compx//定义命名空间
class Complex
{
//共有
public:
//构造方法
Complex(){cout<<2}
getx(int c){return c}
//私有
private:
double red;
double imageCount;
int len;
}
using namespace std;//引用空间
std::cout 调用命名空间的方法
//c++运行中堆区和栈区
0xc0000000<内核虚拟内存<内存使用
栈区<程序运行时用于存放局部变量,可向下延伸空间
0x40000000< 共享库的内存映射
堆区< 程序运行时用于分配malloc和new申请的区域
可读写区.data.bss<用于存放全局变量和静太变量
0x08048000<只读取< 存放程序和变量等
0 未使用
STL
标准模板库
STL中有list vector set map 等和一些算法
container容器,algorithm算法,iterator迭代器,函数对象(function object)
算法和数据结构完全分离,其中算法是泛形的
命名空间的使用
//file "h1.h"
namespace ks1
{
class table
{
public:
table(int c,int b){return c}
f1(){return 1}
private:
int countf;
}
}
//file "h2.h"
namespace ks2
{
class table
{
public:
table(int c){return c}
f1(){return 1}
private:
int countf;
}
}
#include "h1.h"
#include "h2.h"
int main()
{
//域调用
ks2::table t1(6);
ks1::table t2(2,3);
}
异常处理
try
{
//异常语句
}
catch(int){//异常类型int
//处理
}
catch(异常类型2){
}
虚构函数
析构函数声明方式与构造函数的相同只是在类名前加个(~)符号
析构函数不接受任何参数,不带任何反问修饰符。
一个类只能有一个析构函数。
析构函数不能重载
析构函数不能显式或手动调用,只有在该类被销毁的时候调用
由于以上特点析构函数通常用于关闭数据库,文件,网络连接等操作。
继承
#include<iostream>
using namespace std;
class Parent1
{
public:
int a;
protected:
int b;
};
class Parent2:public Parent1
{
};
int main()//打印结果:5
{
Parent2 a;//继承类继承源基类的全部方法
a.a=5;
cout<<a.a<<endl;
return 0;
count 常类型
count int c = 1;
数据类型
bool
char
signed char
unsigned char
wchar_t
short
int
unsigned
long
unsigned long
double
long double
float
size_t
string
数组
//需要时 double 换成类直接用
double price[4] = { 12.1,23.2,32.3,32.4 };
int arraySize; //定义元素个数
cin>>arraySize; //输入元素个数
int *p; //指针指向一个数组
p = new int[arraySize]; //动态分配内存
delete []p; //最后释放内存空间
遍历数组
#include<iostream>
using namespace std;
int main()
{
double price[4] = { 12.1,23.2,32.3,32.4 };
for (int i=0;i<4;i++)
cout << price[i] << " ";
cout << endl;
}
int main()
{
double price[4] = { 12.1,23.2,32.3,32.4 };
for (double &x : price) //&运算符表示x是一个引用变量
cout << x *0.3<< " ";
cout << endl;
}
int main()
{
for (double x : { 12.1,23.2,32.3,32.4 })
cout << x<< " ";
cout << endl;
}