我仍在学习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”函数,这些函数用于返回创建类实例时应设置的值,并且想知道我的语法是否正确。这是课程:
#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
代替类,因为无论如何您的所有成员都是公开的。您还可以使用class
和public:
访问说明符。您不需要访问方法(获取器),因为一切都已经公开,就像您在Java类中一样。
顶点类定义不需要包含任何内容,并且绝对不应在
using
声明中放置任何头文件。为了模仿Java方法参数传递,您传递了原语的副本和对象实例参数的非常量指针(非引用)。
编辑-修复了我错过的愚蠢问题,以及下面的人工编译器:)
关于c++ - 使用构造函数值在C++中创建自定义类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36317738/