我接到一个cpp作业的任务,任务很长,而且还有很多功能,这个,但是我卡在了最开始。我这里想做的只是把屏幕上给出的点写出来。
#include <iostream>
using namespace std;
class Point {
public:
double x, y;
Point(){
x=0.0;
y=0.0;
};
Point(double x,double y){
this -> x = x;
this -> y = y;
}
void print() {
cout << "(x,y) = ("<< x <<","<< y <<")"<<endl;
}
};
class Triangle {
public:
Point A;
Triangle(const Point& p1){
A.x = p1.x;
A.y = p1.y;
}
void print1(){
cout << "A(x,y) = ("<< A.x <<","<< A.y <<")"<<endl;
}
};
int main(){
Triangle A{1.0,2.0};
A.print1();
return 0;
}
我这里的思路是,我有一个名为Point的类,它是由两个变量x和y组成的,任务中的类Triangle有3个点,但我为了简单起见只用了一个,它有一个点是来自类Point的(所以它应该有x和y坐标),还有一个构造函数也是来自类Point的。我想的是只要把它们的x和y坐标连接起来,然后打印出来就可以了。但不是这样的,你能帮帮我吗。如果你需要的话,我有更多的任务的代码,还有我们课程的代码。谢谢你的帮助。
Triangle(const Point& p1)
接受一个 const
参考 到 Point
. 引用是一个现有变量的别名。在这种情况下,与其说是复制一个 Point
జజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజ Triangle
构造函数收到 Point
本身。的 const
重要的是,它是一个承诺,即 Point
不会被内部的 Triangle
的构造函数。这允许你传递一个对临时的 Point
否则将不会存在足够长的时间让修改变得有意义,并被编译器拒绝,以防止可能的错误。
Triangle A{1.0,2.0};
将试图使 Triangle
的两个浮点值。Triangle
需要一个对 Point
所以你一定要做到 Point
第一。
Triangle A{ {1.0,2.0} };
^ ^
| Construct a temporary Point from 2 floating point numbers
Triangle constructor arguments: one Point
无关的改进。使用... 成员初始化器列表
Triangle(const Point& p1): A{p1}{
}