C++网易云课堂开发工程师--类模板
2021-07-09 02:15
标签:dir out end bsp 网易 str ons 实现 打开 static complex data members static data members member functions static member functions 非静态成员函数:non-static member functions complex c1, c2, c3 complex c1, c2, c3 cout cout non-static data members cout cout non-static data members static data members 静态数据 “仅有一份” static member functions 静态函数 --------------> 没有thispointer,所以静态函数只能处理静态数据 进一步补充,static: class Account{ public: static double m_rate; static void set_rate(const double& x) {m_rate = x;} 静态函数没有thispointer所以只能调用静态数据 }; double Account::m_rate = 8.0; 静态数据必须在class外面进行定义(定义获取内存) int main(){ Account::set_rate(5.0); 调用static函数的方式有两种: Account a; (1) 通过object调用,通过对象调用 a.set_rate(7.0); (2) 通过class name调用,通过类名调用 } 进一步补充,把ctors放在private中,把构造函数放在private中 class A{ public: static A& getInstance(return a;) getInstance(return a;)外界可以通过a来获取对象 setup() {...} private: A(); 将A放在private里面,那么没有任何人可以创建A A(const A& rhs); static A a; } A::getInstance().setup(); 单例设计模式; 通过调用函数来实现,调用自己 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 上述表例中,若没有自己则会造成浪费,例如static A a中, 若不需要创建则造成浪费。 class A{ public: static A& getInstance(); setup() {...} private: A(); A(const A& rhs); ... }; A& A::getInstance(){ A::getInstance().setup(); static A a; return a; } 进一步补充:class template, 类模板 template class complex{ public: complex(T r = 0, T i = 0) : re(r), im(i) { } complex& operator += (const complex&); T real() const {return re;} T imag() const {return im;} private: T re, im; friend complex& _doapl(complex*, const complex&); }; { complex complex } 进一步补充:function template, 函数模板 template inline const T& min(const T& a, const T& b){ return b } 类模板与函数模板的差别 1. 类模板在使用时,必须指定类型是什么? 函数模板不必明确指出,编译器会进行参数推倒。 进一步补充:namespace namespace std{ 可以分为不同模块进行包装 ... } using directive #include using namespace std; 全部打开 int main(){ cin cout return 0; } C++网易云课堂开发工程师--类模板 标签:dir out end bsp 网易 str ons 实现 打开 原文地址:https://www.cnblogs.com/sky-z/p/9568359.html