一. 产生随机数
1.1. 产生正态分布的随机数
#include <random>
int main()
{
std::default_random_engine generator;
std::normal_distribution<double> noise(0.,w_sigma);
double n = noise(generator);
return 0;
}
模板
1 调用类模板成员函数
参考:调用模板类的模板成员函数的问题_笑Smile3721的博客-CSDN博客
class A { template<typename T> void test() { T a; } } A c; c.template test<int>(); // 调用类模板成员函数本就应该按照这种写法 c.test<int>(); // 这种方法在一些场合也能用,但是根据专业书籍的解释,这种写法应该算不规范的 // 因为编译器会把test 和int 中间的 < 翻译成小于号
二. 多态
2.1 virtual 虚函数
你目前理解的就是可以重写基类的函数。
例如,基类X有一个 虚函数A,又创建了一个派生类Y(继承自X),现在派生类如果重写了函数A,那么实例化的基类对象X,调用函数A时,调用的是派生类的A;如果没有重写,那就调用原A
2.2 基类指针指向派生类对象
c++ 基类指针指向派生类对象 虚函数 多态 动态联编_ssp1000的博客-CSDN博客_c++基类指针指向派生类对象
三. 封装
3.1. explicit
禁止使用隐式类型转换调用这个构造函数。你得先去了解何谓隐式类型转换,看C++黑马程序员。