c++ - 构造函数如何调用导致 Visual Studio 2019 发出 C26444 警告?
问题描述
据我所知,构造函数是 void 类型。鉴于下面指定的代码,为什么 Visual Studio 2019 编辑器会使用 C26444 警告标记指示的构造函数调用?
下面是相关的实现源码:
#pragma once
#include "Class_dB_CG.h"
CG::CG() {}
CG::~CG() {}
CG::CG(const CG& rhs) {}
CG::CG(ER* e)
{
CG(); ***//warning on this line***
er = e;
}
**The header file is here:**
#pragma once
#include "Class_dB_ER.h"
class CG
{
private:
ER* er = 0;
public:
CG();
~CG();
CG(const CG& rhs);
CG(ER* e);
};
解决方案
在这段代码中:
CG::CG(ER* e)
{
CG(); // warning on this line
er = e;
}
你没有调用构造函数。您只是在创建一个被丢弃的临时对象。这可能是警告所指的内容。
如果你想调用构造函数,你可以这样做:
CG::CG(ER* e) : CG()
{
er = e;
}
推荐阅读
- reactjs - 'main' 尚未注册 AppRegistry - 反应原生博览会
- python - 创建新频道
- java - 如何在 Eclipse JDK 首选项部分中设置默认的 JDK 合规性级别和版本
- react-native - 如何修复 NativeModule.RNLocalize 为空?
- angular - Angular Universal 不在服务器端加载字体
- jquery - 如何在 Odoo PoS 屏幕中将客户列表显示为弹出窗口?
- c# - 如何使用 C# 中的参数运行 rscript
- node.js - 使用 MongoDB 聚合 $sample 不会给出考虑整个文档集合的随机结果
- sql - 产品视图按优先级排序
- c++ - cmake:动态作业池更改