java编写point类line类_C++编程中,组合类的问题。Point类与Line类的组合,在main函数中定义对象,当构造函数被调用时,输出语句...

C++编程中,组合类的问题。Point类与Line类的组合,在main函数中定义对象,当构造函数被调用时,输出语句以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

4a2862b03b80c6eec33d073b0e0c1eeb.png

C++编程中,组合类的问题。Point类与Line类的组合,在main函数中定义对象,当构造函数被调用时,输出语句

Line L1(Point M,Point N);

这种形式,VS2008中,编译器会给出警告C4930:未调用原型函数。

编译器理解为这是在main内部声明了一个函数。

这也是为什么VS2005和VS6.0不执行的原因。因为是函数原型声明,当然不会执行。

正确调用方法是,参数不要再写类型了

Line L1(m, n); 这样编译器就知道,你是声明了Line的实例变量

c++组合类的构造函数

是拷贝构造,不是operator=

sunnzy的说法不太对。 虽然这两种写法可能结果是一样的,而且也“应该”是一样的, 但实际上是取决与实现, 因为调用的是不同的函数, 完全有可能做了截然不同的事情。

C++中,关于组合类的构造函数书写问题!

c++不支持带参数对象数组的初始化的。

你可以为subject写个无参数构造函数,然后在code的构造函数里对每个对象进行赋值。

如果数据可以是static的,那就可以静态的初始化表去初始化它。

所以,先让AA对象有个无参或默认参数构造函数,

AA(int xx=0)

{

x=xx;

}

对于BB对象的构造函数,

BB()

y=0;

for(;y<5;y++)

a[y]=y;

这样就能让a[5]初始化了。

C++组合类构造函数调用顺序

先调用基类的构造函数,再调用派生类的构造函数 就像盖楼的时候先从地基开始,然后第一层,第二层。。。 如果是析构,那么先调用派生类的析构函数,再调用基类的析构函数 就像拆楼的时候想从最高层开始拆,然后往下一直到第一层

C++ 类的组合 构造函数debug

Computer(CPU_Rank cpu_r=P1,int cpu_f=0,double cpu_v=0,

RAM_Rank ram_r=R1,int ram_f=0,double s=0)

:cpu(cpu_r,cpu_f,cpu_v),

ram(ram_r,ram_f,s)

这里是否写的有问题, ram_f 是int s是double类型

而RAM::RAM(RAM_Rank,double,int) 中 第三个参数为int。

c++中组合类构造函数怎么传递值

申明一个对象时,像函数一样传参。看你构造函数怎么写

如:构造函数带一个参数的CAd类:CAd tr(5);

组合类拷贝构造函数的调用

拷贝构造函数的调用时机有三个:

1.当一个对象赋给另一个对象值时。例如对象a和b,语句a=b;调用拷贝构造函数。

2.当初始化一个构造函数时。例如你的程序中point myp1(1,1);

3.当对象作为函数的参数时。例如函数调用你的对象时 function(point myp1);

除此之外就没有调用拷贝构造函数的了。

c++编程思想(钱能主编)这本书中有非常详细的介绍。建议你看看

从main函数往下看,首先是两个point类,采用2方法调用,因此先有两个point拷贝构造函数被调用。然后是line类采用2方法调用,但是line类由point类对象构成,因此调用line类拷贝构造函数前在调用两个point拷贝构造函数(因为两个point对象)之后是一个line的拷贝构造函数调用。

你的程序没运行过吧。按照你的程序到这里就结束了。如果需要出现

point拷贝构造函数被调用

point拷贝构造函数被调用

line拷贝构造函数被调用

必须将最后一句line line2; 改为line line2=line1;才对。

这样就相当于第一种方法调用拷贝构造函数。

嗯,没错,是这样的!

组合类拷贝构造函数问题

是编译器默认的就没参数呀。唉,你这个问题问得难以让人理解!

C++作业:定义一个点和线的组合类, 在主函数中定义类的对象,

class Point

{ public: Point(){x = 0; y = 0; } int x , y };

class Line

{ public: Line(){} Point p1 , p2 };

class Shape

{

Shape() {}

Point pt;

Line li;

};

int main()

{

Shape* p = new Shape; 构造函数

delete p; 析构函数

return 0;

}

C++中关于类的定义中常对象定义后调用构造函数的问题?

常量对象必须初始化(从常量这个词的语义上去考虑)。也就是定义常对象的同时就要给对象赋初值,对象的初始化是通过构造函数完成的,如果构造函数不需要参数的话,那么可以不必显式调用,如果对象初始化时要求有参数,要么必须传参。调用的构造函数与普通的对象一样。构造函数采不采用初始化列表,,跟赋值没有关系。初始化列表主要原因一是继承,初始化基类,二是效率,当然这个效率指的是当类中有类对象时,用初始化列表,可以减少函数调用,还有就是LS说的,因为常量只能被初始化,不能被赋值,作为类的成员只能在初始化列表中初始化。

分页:123

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 设计一个评选优秀教师和学生的程序,其结构如图1所示。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出 2.编写一个程序实现图书和杂志销售管理。当输入一系列图书和杂志销售记录后,将销售良好(图书每月售500本以上,杂志每月2500本以上)的图书和杂志名称显示出来。 3.扩写程序: 以下程序的功能为计算正方体的表面积和体积。增加两个Globe和Cylinder,求球体和圆柱体的表面积和体积。在基定义的公共数据成员radius,可作为正方体的边长、球体的半径、圆柱体的底面半径。(补充结构图) 4、声明二维坐标作为基派生出圆, 把圆作为基,派生圆柱体。 其,基二维坐标有成员数据:x、y坐标值;有成员函数构造函数实现对基成员数据的初始化、输出的成员函数,要求输出坐标位置。 派生有新增成员数据:半径(R);有成员函数构造函数实现对成员数据的初始化、计算圆面积的成员函数输出半径的成员函数。 派生圆柱体新增数据有高(H);新增成员函数有:构造函数、计算圆柱体体积的函数输出所有成员的函数。请完成程序代码的编写、调试。 实验步骤如下: 先定义一个基point,及其成员函数,先测试一下: 然后以public的继承方式定义circle 再定义一个派生cylinder 最后在main函数定义对象调用函数实现其功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值