我仍在学习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代替类,因为无论如何您的所有成员都是公开的。您还可以使用classpublic:访问说明符。
您不需要访问方法(获取器),因为一切都已经公开,就像您在Java类中一样。

顶点类定义不需要包含任何内容,并且绝对不应在using声明中放置任何头文件。

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

编辑-修复了我错过的愚蠢问题,以及下面的人工编译器:)

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

10-11 23:07
查看更多