C++面对对象
实函数,虚函数,纯虚函数,函数重写
虚函数:需要进行子类的重写时。
virtual void 函数名
纯虚函数:父类只声明,由子类实现。相当于java中的抽象类中的抽象方法。
virtual 函数名 = 0;
纯虚类
纯虚类:成员方法全部都是虚函数,相当于java中的抽象类。
单重继承,多重实现。
函数重载
名称一样,参数不同。
C++运算符重载
void operator += (Point p) {
//...
}
伪函数
不是一个真正的函数(是类/结构体)。
把类当成函数来对待。
Hello h; h();
函数指针
void(object::sayHi)();
C++引用
解决内存拷贝的问题
参数:+&
C++友元类
私有类指定公开给对应的类
class A{
//friend class B; //可直接访问
private:
int num;
public:
A() {
num = 10;
}
};
class B : public A {
public:
B() {
printf("%d\n",num); //不可以直接访问
};
};
}
C++标准库容器的用法
C++字符串操作
#include <iostream>
#include <string>
#include <sstream>
int main(int argc, char* argv[]) {
string str;
str += "hello ";
str += "world"; //不能直接+其他类型
stringstream ss;
ss << "hello ";
ss << 200;
ss << " ";
ss << 2.5;
ss << "Hello " << "nancy " << 1000;
//cout << ss; 错误
cout << ss.str() << "\n";
//cout << ss.str().c_str() << "\n";
}
C++文件操作
头文件是#include <fstream>
.
- 输出
ofstream of("data.txt");
of << "Hello world\n";
of.close(); - 读取
ifstream inf("data.txt");
char c;
inf >> c;
cout << c << "\n"; //H - 一次性读取
头文件是#include <sstream>
stringbuf sb;
inf >> &sb;
cout << sb.str() << "\n";