• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

c++对象成员问题:为什么在Line.h中实例化不需要传入参数

064001vy66a6ce9yckpg99.jpg

064002pl7l9g5ugp95n8ng.jpg

想问下,在Line.h中,
Coordinate m_coorA;
Coordinate m_coorB;
这两行代码是类的成员变量,同时也是将Coordinate类中的两个对象实例化了对吧。那么Coordinate的构造函数如图一写成了
Coordinate::Coordinate(int x,int y)
{
m_iX=x;
m_iY=y;

cout

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与1

你的问题“这两行代码是类的成员变量,同时也是将Coordinate类中的两个对象实例化了对吧”
不一定。


第二张图是Line的类声明,其中你画圈的代码是对其成员变量的描述。
像这样的非static 成员变量的实例化代码,要么出现在Line构造函数的成员初始化列表中,如:
//构造函数参数列表后面冒号后的部分就是“成员初始化列表”//成员变量的初始化推荐放在这里Line(intx1,inty1,intx2,inty2):m_coorA(x1,y1),m_coorB(x2,y2){...}要么,在C++11标准之后,也可以在类中(你画圈的地方)提供初值,必须用等于号或者大括号的初始化形式,如:
classLine{...private:Coordinatem_coorA{...};//C++11之后,你可以在这里用大括号形式调用构造函数...};在类实例化时,成员变量可通过以上两种方式进行实例化。如果都没有提供,成员变量会被默认构造。
鉴于你说没有编译失败,虽然你没有提供构造函数的实现代码,推测是使用了成员初始化列表的方式进行了成员的初始化。

使用道具 举报

发新帖

发布任务需求已有1031166位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!