类模板、函数模板、其他
static
示例代码:
实际创建过程当中,由于传入的对象不同,所以返回的real()内容不同
complex c1,c2,c3;
cout << c1.real();
cout << c2.real();
// 编译器实际执行
complex c1,c2,c3;
cout << complex::real(&c1);
cout << complex::real(&c2);
由于传入的指针对象不同.所以返回的real()值不同 -> real()函数只有一份.所以通过this这个指针区分需要处理哪个对象
static
在数据或者函数之前加了static以后会在内存当中单独有一块区域(只有一份) -> 静态数据如利率
static member functions和member functions的区别在于,static函数没有this这个指针
静态函数如果要处理数据只能去处理静态数据
示例代码:
account-test.cpp:
将构造函数放在private的位置:
class A
{
public:
static A& getInstance() { return a; };
private:
A();
A(const A& rhs);
static A a; // 这个写法当中无论如何都会创建A对象,无论外界是否使用
};
A& A::getInstance()
{
return a;
}
更新改进:
class template(类模板)
类模板示例:
类模板在头文件声明类之前要写出
function template(函数模板)
示例代码:
namespace(命名空间)
语法:
namespace std
{
}
所有的东西被包装在namespace当中 -> 可以理解一块独立区域
如何使用命名空间?
示例代码:(using directive):
#include <iosteam.h>
using namespace std;
int main()
{
cin << ...;
cout << ...;
return 0;
}
如果不使用命名空间:(using declaration)
#include <iosteam.h>
using std::cout;
int main()
{
std::cin << ...;
cout << ...;
return 0;
}
#include <iosteam.h>
int main()
{
std::cin << ...;
std::cout << ...;
return 0;
}
It's a lonely road!!!

浙公网安备 33010602011771号