gpt4 book ai didi

c++ - 谁能帮助解决函数重载问题?

转载 作者:太空宇宙 更新时间:2023-11-04 12:19:31 25 4
gpt4 key购买 nike

我被要求做函数重载,我真的很困惑。我需要:

  1. 不接受任何参数并将所有坐标设置为 0。

  2. 接受所有坐标作为参数并将数据成员设置为参数。

  3. 接受一个同时存在的对象作为参数,并将该对象的数据成员复制到当前对象中。

  4. 接受一个维度较小的点的对象,并仅复制那些能够在当前对象中表示的数据成员,将未表示的维度设置为 0。

到目前为止,这是我的代码,我想知道我是否完成了上述任何一项,如果没有,有人可以指导我如何完成其​​他代码。谢谢

#include <iostream>
#include <string>
#include <math.h>

using namespace std;
//////////////////////////////
////// Class definition //////
//////////////////////////////

class point1DClass
{
private:
int x;

public:
point1DClass(); // constructor function
int getx(); //Accessor function
void setx(int newx); // Mutator function
~point1DClass(); //Destructor function
};
/////////////////////////////////////
//// Member function implementation//
/////////////////////////////////////
point1DClass::point1DClass()
{
x=0;
}

void point1DClass::setx(int newx)
{
x = newx;
}

int point1DClass::getx()
{
return x;
}

point1DClass::~point1DClass()
{
cout << "Object Going Out of Scope!" << endl;
}

class point2DClass:public point1DClass
{
private:
int y;

public:
point2DClass(); // constructor

void sety(int newy); // Mutator function
int gety(); //Accessor function

~point2DClass();

//isincident
//cityblock
//pythagDistance

};
/////////////////////////////////////
//// Member function implementation///
/////////////////////////////////////
point2DClass::point2DClass()
{
y=0;
}

void point2DClass::sety(int newy)
{
y = newy;
}

int point2DClass::gety()
{
return y;
}

point2DClass::~point2DClass()
{
cout << "Object Going Out of Scope!" << endl;
}

class point3DClass:public point2DClass
{
private:
int y;
int z;

public:
point3DClass();

// void sety(int newy);
void setz(int newz); // Mutator function
// int gety();
int getz();

~point3DClass();
};
/////////////////////////////////////
//// Member function implementation///
/////////////////////////////////////
point3DClass::point3DClass()
{
// y=0;
z=0;
}

void point3DClass::setz(int newz)
{
z=newz;
}

//void point3DClass::setz(int newy)
//{
// y=newy;
//}

int point3DClass::getz()
{
return z;
}

//int point3DClass::gety()
//{
// return y;
//}

point3DClass::~point3DClass()
{
cout << " Going Out of Scope!" << endl;
}

//////////////////////////////////////////////////
//////Main Function Implementation///////////////
///////////////////////////////////////////////////

int main()
{
point1DClass x;// create an object

x.setx(3);
cout << "x co-ordinate: " << x.getx() <<"\n"<<endl;

point2DClass y;
y.sety(4);
cout<<"y co-ordinate:" << y.gety() <<"\n"<<endl;

point3DClass z;
z.setz(8);
cout <<"z co-ordinate:" << z.getz() <<"\n"<<endl;

system("pause");
return 0;
}

最佳答案

您可能想要重载构造函数。因此,对于 point3DClass,您需要在头文件中包含以下内容:

class Point3D {
public:
int x, y, j;
Point3D(); // default
Point3D(int i, int j, int k); // Make new point with (i,j,k)
Point3D(Point3D copy);
Point3D(Point2D copy);
Point3D(Point1D copy) {
x = copy.getX();
y = 0;
z = 0;
}
}

如果你重新格式化你的代码,有人可能会觉得更慷慨 :P

关于c++ - 谁能帮助解决函数重载问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5890335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com