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
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值