gpt4 book ai didi

c++ - 使用构造函数值在 C++ 中创建自定义类

转载 作者:行者123 更新时间:2023-11-28 05:45:28 30 4
gpt4 key购买 nike

我仍在学习 C++,并且在 Java 方面有更多的经验。在 Java 中,创建一个类可以像这样简单:

public class vertex 
{

public double x, y, z;

public boolean eliminated = true;


public vertex(double x, double y, double z)
{
//vertex constructor
}

}

我正在尝试在 C++ 中做一些几乎相同的事情,除了内置的“get”函数,用于返回在创建类的实例时应该设置的值,并想知道我的语法是否正确。这是类(class):

#include <iostream>
#include <stdlib.h>

using namespace std;

class Vertex // Standard way of defining the class
{

public:
// This means that all of the functions below this(and any variables) are accessible to the rest of the program.

Vertex(double x, double y, double z);
//constructor

double getX();
double getY();
double getZ();

double x;
double y;
double z;


};

double Vertex:: getX()
{
return x;
}

我还想要有关创建一个类的建议,该类具有自定义类的实例,例如其中的一个。

最佳答案

public class vertex 
{
public double x, y, z;
public boolean eliminated = true;
public vertex(double x, double y, double z)
{
//vertex constructor
}
}

要在 C++ 中尽可能简单和准确地模仿这个 Java 类,您可以这样做:

struct vertex{
double x, y, z;
bool eliminated = true;
vertex(double x, double y, double z){
//vertex constructor
}
};

非常相似吧?请注意,eliminated 成员是默认启动的,这是 C++11 的新成员,因此请确保您拥有最新的编译器。struct 用于代替类,因为无论如何您的所有成员都是公开的。您还可以使用 classpublic: 访问说明符。您不需要访问方法(getter),因为一切都已经公开,就像在您的 Java 类中一样。

您的顶点类定义不需要任何 include in,您绝对不应该将 using 声明放在任何头文件中。

为了模仿 Java 方法参数传递,您传递原语的拷贝和对象实例参数的非常量指针(非引用)。

编辑 - 修复了我遗漏的愚蠢问题,下面的人类编译器发现了:)

关于c++ - 使用构造函数值在 C++ 中创建自定义类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36317738/

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