簡體   English   中英

class 的值有問題

[英]Trouble with value of class

我創建了一個 class “向量”,它只返回 x、y、z 值。 但是當我嘗試從 class 獲取一個值並打印它時,它顯示的是 0 而不是預期值。 除了我的視覺工作室項目之外,我已經嘗試過這個並且它有效,所以我完全迷失了。 我把它放在主要的 function 中以簡化但實際上我使用 WinMain。

矢量.h

#ifndef VECTOR_H
#define VECTOR_H

class vector {
public:
    //declaration
    double x, y, z;
    vector(double x, double y, double z);
};

向量.cpp

#include "vector.h"

//definition
vector::vector(double x, double y, double z) : x(x), y(y), z(z) {}

主文件

int main() {

//create a array of vector
vector vertices[4] = {
                vector(0, 0, 0),
                vector(1, 0, 0),
                vector(1, 1, 0),
                vector(0, 1, 0),
    };

std::cout << vertices[1].x << std::endl;
//and it prints 0 instead of 1;

return 0;
}

我的解釋是你想創建用戶定義的 class 的向量,它有 3 個成員,分別是x、y、z

因此,以下是您可以根據需要參考和修改的代碼。

class myClass{
public:
    double x, y, z;

    myClass() { x = 0.0; y = 0.0; z = 0.0; };
    myClass(double x, double y, double z) : x(x), y(y), z(z) {}

};

int main() {

  vector <myClass>vertices = {
    myClass(0, 0, 0),
    myClass(1, 0, 0),
    myClass(1, 1, 0),
    myClass(0, 1, 0),
  };

   std::cout << vertices[1].x << std::endl;
   return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM