首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >c++ g++编译器-错误:隐式声明的定义

c++ g++编译器-错误:隐式声明的定义
EN

Stack Overflow用户
提问于 2020-07-02 05:53:09
回答 1查看 273关注 0票数 1

我搜索过教科书和网络。我似乎找不到任何东西来解释底部的错误。它们来自复制构造器和operator=重载。

代码语言:javascript
运行
AI代码解释
复制
  1 #ifndef SURVEYDATA_H
  2 #define SURVEYDATA_H
  3
  4 class SurveyData
  5 {
  6     public:
  7         int   getSector();
  8         int   getExposure();
  9         int   getSpeed();
 10
 11         SurveyData();
 12         SurveyData(int, int, int);
 13         SurveyData(const SurveyData&);
 14
 15         SurveyData& operator=(const SurveyData&);
 16     private:
 17         int sector;
 18         int exposure;
 19         int speed;
 20 };
 21 #endif

标题文件^

代码语言:javascript
运行
AI代码解释
复制
 SurveyData::SurveyData(const SurveyData& s)
 18 {
 19     sector = s.getSector();
 20     exposure = s.getExposure();
 21     speed = s.getSpeed();
 22 }
 23
 24 SurveyData& SurveyData::operator=(const SurveyData& s)
 25 {
 26     sector = s.getSector();
 27     exposure = s.getExposure();
 28     speed = s.getSpeed();
 29     return *this;
 30 }

.cpp文件的部分错误来自^

代码语言:javascript
运行
AI代码解释
复制
surveydata.cpp:17:43: error: definition of implicitly-declared ‘constexpr SurveyData::SurveyData(const SurveyData&)SurveyData::SurveyData(const SurveyData& s)
                                               ^
    surveydata.cpp:24:54: error: definition of implicitly-declared ‘constexpr SurveyData& SurveyData::operator=(const SurveyData&)’
     SurveyData& SurveyData::operator=(const SurveyData& s)

错误^任何帮助理解这一点的人都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2020-07-02 06:10:05

H.Krisnan在评论中说了什么。使这些get函数保持常量。对于类之外的任何地方,通过常量引用传递SurveyData是有意义的,这可能是件好事。因此,请继续这样做。

然而……

实际上,您的类中既不需要复制构造函数,也不需要重载赋值操作符。由于您的类没有任何分配的指针或成员,无法使用浅拷贝进行服务,因此由编译器生成的默认拷贝构造函数和默认赋值操作符将会很好地工作。因此,稍后在向SurveyData添加新变量时,不会因为忘记更新复制构造函数而引入错误。

当一个成员(例如原始指针)需要显式分配才能使赋值有效时,实现复制构造函数和赋值运算符。您可能还需要一个析构函数:Rule off three。或者相反,如果您的类足够简单,它不需要析构函数,那么它可能也不需要显式定义复制构造函数或赋值运算符。

把它们拿出来。

代码语言:javascript
运行
AI代码解释
复制
   class SurveyData
   {
       public:
           int   getSector() const;
           int   getExposure() const;
           int   getSpeed() const;
 
           SurveyData();
           SurveyData(int, int, int);
  
       private:
           int sector;
           int exposure;
           int speed;
   };

但是,如果您确实需要一个复制构造函数或赋值操作符,这些方法可以访问私有数据。所以你总是可以说:

代码语言:javascript
运行
AI代码解释
复制
  SurveyData& SurveyData::operator=(const SurveyData& s)
  {
      sector = s.sector;
      exposure = s.exposure;
      speed = s.speed;
      return *this;
  }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62689847

复制
相关文章
JavaScript中的链式调用
链模式是一种链式调用的方式,准确来说不属于通常定义的设计模式范畴,但链式调用是一种非常有用的代码构建技巧。
WindRunnerMax
2020/11/26
4.1K0
JavaScript中的链式调用
链模式是一种链式调用的方式,准确来说不属于通常定义的设计模式范畴,但链式调用是一种非常有用的代码构建技巧。
WindRunnerMax
2020/11/27
9010
C++中的链式操作
链式操作是利用运算符进行的连续运算(操作),它的特点是在一条语句中出现两个或者两个以上相同的操作符,如连续的赋值操作、连续的输入操作、连续的输出操作、连续的相加操作等都是链式操作的例子。
恋喵大鲤鱼
2018/08/03
1.3K0
C++中的链式操作
oracle、mysql 分页查询比较
1、 Oracle的分页查询语句 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 40和RN >= 21控制分页查询的每页的范围。 上面给出的这个分页查询语句,在大多数情况拥有较高的效率。分页的目的就是控制输
java达人
2018/01/31
2.7K0
oracle、mysql 分页查询比较
1、 Oracle的分页查询语句 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 40和RN >= 21控制分页查询的每页的范围。 上面给出的这个分页查询语句,在大多数情况拥有较高的效率。分页的目的就是控制输
java达人
2018/01/31
2.8K0
Django 2.1.7 模型 - 条件查询、模糊查询、空查询、比较查询、范围查询、日期查询
上一篇Django 2.1.7 模型 - MVT模型增删功能讲述了关于MVT模型中列表的增加数据以及删除数据的功能,在数据返回的过程中,也有部分关于模型之间关联查询的数据。
Devops海洋的渔夫
2019/06/15
10.8K0
多表数据汇总查询之6、字段间比较的查询条件
大海:你可以考虑这样啊,先在PQ的数据里构造一个两个数比较的结果列,然后是不是就跟同一条件多值查询(见文章《按条件动态化查询多表数据之4、同一查询条件多值处理》)的一样了?
大海Power
2021/08/30
7010
15. Django 2.1.7 模型 - 条件查询、模糊查询、空查询、比较查询、范围查询、日期查询
上一篇Django 2.1.7 模型 - MVT模型增删功能讲述了关于MVT模型中列表的增加数据以及删除数据的功能,在数据返回的过程中,也有部分关于模型之间关联查询的数据。
Devops海洋的渔夫
2022/01/17
4.1K0
15. Django 2.1.7 模型 - 条件查询、模糊查询、空查询、比较查询、范围查询、日期查询
从计算、建模到回测:因子挖掘的最佳实践
量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W+关注者,荣获2021年度AMMA优秀品牌力、优秀洞察力大奖,连续2年被腾讯云+社区评选为“年度最佳作者”。 前言 因子挖掘是量化交易的基础。除传统的基本面因子外,从中高频行情数据中挖掘有价值的因子,并进一步建模和回测以构建交易系统,是一个量化团队的必经之路。金融或者量化金融是一个高度市场化、多方机构高度博弈的领域。因子的有效时
量化投资与机器学习微信公众号
2022/05/17
6.6K0
从计算、建模到回测:因子挖掘的最佳实践
Python | 5 分钟解读 Python 中的链式调用
如果你是有打算从事有关数据分析或者数据挖掘的等数据科学领域的工作,或者和我一样目前就是从事相关领域的工作,那么「链式调用」对我们而言是一门必修课。
咸鱼学Python
2020/05/13
3.5K0
DolphinDB:金融高频因子流批统一计算神器!
DolphinDB为海量结构化数据的极速存储、检索、计算与分析提供了一站式解决方案,特别适合金融行业用来处理大规模数据,尤其是L1,L2以及逐笔委托的行情数据。
量化投资与机器学习微信公众号
2021/03/15
4K0
DolphinDB:金融高频因子流批统一计算神器!
链式操作
检测页面是否可用 <script> $(document).ready(function() { }); </script> <script> $(function() { }); </script> jQuery插件 jQuery Validation jQuery Treeview jQuery Autocomplete jQuery UI 避免和其他库的冲突 先引入其他库再引入jQuery的情况。 <script src="other
用户8442333
2021/05/20
6430
PHP中的对象比较
在之前的文章中,我们讲过PHP中比较数组的时候发生了什么?。这次,我们来讲讲在对象比较的时候PHP是怎样进行比较的。
硬核项目经理
2020/03/27
1.9K0
python中字典的比较
今天碰到一个字典比较的问题,就是比较两个字典的大小,其实这个用的不多,用处也没多少,但是还是记录一下。
py3study
2020/01/08
4.6K0
队列的链式存储
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<memory.h> //节点结构体 struct node { //只维护指针域 node* next; }; //队列结构体 struct queue { //头节点 node pheader; //队列的长度 int size; //记录链表尾部的指针 node* ptail; }; //隐藏queue结构体,不让用户改变结构体内部的
大忽悠爱学习
2021/03/05
3450
队列的链式存储
栈的链式存储
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> #define MAX 1024 //节点的结构体 struct stackNode { //只维护指针域 stackNode* next; }; //栈的结构体 struct lstack { //这里头节点不写成指针形式,是因为栈的结构体会开辟在堆区 //如果头节点用指针形式表示,就要用头节点指针指向一个开辟在堆区的头
大忽悠爱学习
2021/03/05
2930
栈的链式存储
jQuery的链式操作
在jQuery中,执行完mouseover或者mouseout等方法之后,都会返回当前的对象,所以可以进行链式操作(注意语法)
用户7657330
2020/08/14
5230
链式调用this
jQuery在JavaScript库中的一哥地位是不可撼动的,虽然随着这几年框架的崛起和一些大平台移除了jQuery的依赖,但不可否认jQuery还是前端开发必须掌握的技能。
wade
2020/04/24
1.1K0
链式调用this
链式Consumer
今天发现一种方便的链式Consumer写法 import lombok.experimental.UtilityClass; import java.util.function.Consumer; import java.util.stream.Stream; /** * @author VampireAchao * @since 2022/6/2 10:57 */ @UtilityClass public class LambdaHelper { @SafeVarargs pu
阿超
2022/08/21
5920
链式调用
爱学习的前端歌谣
2023/10/24
1320
链式调用

相似问题

Scala中的链式比较

23

查询dolphindb中占用的内存

128

简化链式比较

237

Python链式比较

42

奇怪的链式比较

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文