随笔分类 -  软件技术

上一页 1 2 3 4 5 6 7 8 9 ··· 24 下一页
编程语言,计算机软件相关
摘要:拷贝构造函数 拷贝构造函数的第一个参数必须是一个引用类型。虽然我们可以定义一个接受非 const 引用的拷贝构造函数,但此参数几乎总是一个 const 的引用。 拷贝构造函数在几种情况下都会被隐式地使用。因此,拷贝构造函数通常不应该是explicit的(参见 7.5.4节,第 265 页)。 一般情 阅读全文
posted @ 2024-09-15 12:16 double64 阅读(14) 评论(0) 推荐(0) 编辑
摘要:常量表达式(const expression)是指值不会改变并且在编译过程就能得到计算结果的表达式。 指针和 constexpr 必须明确一点,在 constexpr 声明中如果定义了一个指针,限定符constexpr 仅对指针有效,与指针所指的对象无关: const int *p=nullptr; 阅读全文
posted @ 2024-09-15 11:54 double64 阅读(4) 评论(0) 推荐(0) 编辑
摘要:struct Base { double x{ 111.1 }; }; struct Derive :public Base { double y{ 222.2 }; Derive& operator=(const Derive& obj) { if (&obj == this) { return 阅读全文
posted @ 2024-09-14 23:10 double64 阅读(4) 评论(0) 推荐(0) 编辑
摘要:int i =0; int *const pl = &i; //不能改变p1的值,这是一个顶层 const const int ci=42; //不能改变 ci的值,这是一个顶层 const const int *p2 =&ci; //允许改变p2的值,这是一个底层 const const int 阅读全文
posted @ 2024-09-14 18:11 double64 阅读(8) 评论(0) 推荐(0) 编辑
摘要:下面这种情况显然我们是了解的: const int ci=1024; const int &rl=ci; //正确:引用及其对应的对象都是常量 r1 =42; //错误:r1是对常量的引用 int &r2=ci; //错误:试图让一个非常量引用指向一个常量对象 初始化和对 const 的引用 2.3 阅读全文
posted @ 2024-09-14 15:30 double64 阅读(30) 评论(0) 推荐(0) 编辑
摘要:如果类派生自 C++ 标准库中的类型,而你正在编译调试版本 (/MTd),并且编译器错误消息引用 _Container_base,则可以忽略 C4251。 应慎重将 __declspec(dllexport) 或 __declspec(dllimport) 添加到类中,因为这大概率会成为一种不正确的 阅读全文
posted @ 2024-09-14 15:02 double64 阅读(49) 评论(0) 推荐(0) 编辑
摘要:/*****class Base*****/ class Base { public: Base(); virtual ~Base(); protected: struct Impl; Impl* m_Impl; }; struct Base::Impl { int num{ 100 }; }; B 阅读全文
posted @ 2024-09-13 21:45 double64 阅读(13) 评论(0) 推荐(0) 编辑
摘要:默认状态下,const 对象仅在文件内有效。 const int bufSize=512;//输入缓冲区大小 编译器将在编译过程中把用到该变量的地方都替换成对应的值。也就是说,编译器会找到代码中所有用到 bufsize 的地方,然后用 512 替换。 某些时候有这样一种 const 变量,它的初始值 阅读全文
posted @ 2024-09-13 13:28 double64 阅读(7) 评论(0) 推荐(0) 编辑
摘要:声明 int *ipl,*ip2; // ipl和 ip2 都是指向 int 型对象的指针 double dp,*dp2; // dp2是指向 double型对象的指针,dp是double 型对象 因为引用不是对象,没有实际地址,所以不能定义指向引用的指针。 指针值 指针的值(即地址)应属下列4种状 阅读全文
posted @ 2024-09-12 13:39 double64 阅读(9) 评论(0) 推荐(0) 编辑
摘要:int a{ 10 }; { cout << a << endl; int b{ 20 }; } //cout << b << endl; // 不可访问,只能从内往外查找名字。 作用域是从内往外查找的。 作用域中一旦声明了某个名字,它所嵌套着的所有作用域中都能访问该名字。同时,允许在内层作用域中重 阅读全文
posted @ 2024-09-12 12:42 double64 阅读(5) 评论(0) 推荐(0) 编辑
摘要:变量声明规定了变量的类型和名字,在这一点上定义与之相同。但是除此之外,定义还申请存储空间,也可能会为变量赋一个初始值。 如果想声明一个变量而非定义它,就在变量名前添加关键字 extern,而且不要显式地初始化变量: extern int i; // 声明i而非定义i int j; // 声明并定义了 阅读全文
posted @ 2024-09-12 11:45 double64 阅读(14) 评论(0) 推荐(0) 编辑
摘要:列表初始化 当用于内置类型的变量时,这种初始化形式有一个重要特点:如果我们使用列表初始化且初始值存在丢失信息的风险,则编译器将报错: long double ld=3.1415926536; int a{ld},b={ld}; //错误:转换未执行,因为存在丢失信息的危险 int c(ld),d= 阅读全文
posted @ 2024-09-12 11:17 double64 阅读(19) 评论(0) 推荐(0) 编辑
摘要:class Base { public: virtual ~Base() { cout << "~Base" << '\n'; } }; class Derived : public Base { public: ~Derived() { cout << "~Derived" << '\n'; } 阅读全文
posted @ 2024-09-11 18:55 double64 阅读(3) 评论(0) 推荐(0) 编辑
摘要:一 有符号整数和无符号整数相加时,把负数转换成无符号数类似于直接给无符号数赋一个负值,结果等于这个负数加上无符号数的模。 unsigned int n = 300; int m = -500; cout << m + m << '\n'; cout << n + m << '\n'; 输出: -10 阅读全文
posted @ 2024-09-11 14:06 double64 阅读(69) 评论(0) 推荐(0) 编辑
摘要:#include <iostream> #include <type_traits> using namespace std; namespace { class IAnimal { public: virtual void say() = 0; }; class Dog : IAnimal { p 阅读全文
posted @ 2024-09-08 20:14 double64 阅读(24) 评论(0) 推荐(0) 编辑
摘要:如果我们未定义拷贝控制成员,编译器会为我们合成;如一个类未定义构造函数,编译器会为我们合成一个默认的构造函数。 合成拷贝控制成员可能是删除的情况: 如果类中有成员的析构函数是删除的或不可访问的(private): a. 则类的合成析构函数被定义为删除的; b. 则合成拷贝构造函数被定义为删除的; c 阅读全文
posted @ 2024-09-06 14:15 double64 阅读(11) 评论(0) 推荐(0) 编辑
摘要:#include <map> #include <vector> #include <iostream> #include <string> void FitCenterByLeastSquares(std::map<int, std::vector<double>> mapPoint, std:: 阅读全文
posted @ 2024-09-03 19:21 double64 阅读(24) 评论(0) 推荐(0) 编辑
摘要:#define _CRT_SECURE_NO_WARNINGS /*多字节转宽字节*/ int unsafe_mbstowcs() { // 设置当前的 locale 为用户环境变量指定的 locale setlocale(LC_ALL, ""); // 定义多字节字符串 const char* m 阅读全文
posted @ 2024-09-02 20:38 double64 阅读(29) 评论(0) 推荐(0) 编辑
摘要:class Dog { public: class Animal { public: Animal(Dog* dog) { m_Dog = dog; m_Age = 1; m_Name = dog->m_Info; // 可以访问宿主类对象 } string m_Name; int getAge() 阅读全文
posted @ 2024-08-30 21:08 double64 阅读(4) 评论(0) 推荐(0) 编辑
摘要:class Dog { public: Dog() { m_Name = "小狗狗"; m_Info = "田园狗"; m_Test = "测试"; } void showTest() { cout << "Test:" << m_Test << endl; } void showGood() { 阅读全文
posted @ 2024-08-30 20:52 double64 阅读(5) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 ··· 24 下一页
点击右上角即可分享
微信分享提示