3D 벡터를 처리하는 간단한 클래스가 있습니다. 나는 print 메소드와 get_coo (벡터의 좌표를 리턴한다)를 가지고있다. 이 펑크 션은 정적 메서드가되기를 원하기 때문에 벡터로 일반적으로 사용할 수 있습니다.정적/비 정적 함수는 어떻게 사용해야합니까?
이#include "stdafx.h"
#ifndef my_VECTOR_H
#define my_VECTOR_H
class my_vector{
private:
double a,b,c; //a vektor három iránya
public:
my_vector(double a, double b, double c); //konstruktor
static double get_coo(const my_vector& v, unsigned int k); //koordináták kinyerése, 1-2-3 értékre a-b vagy c koordinátát adja vissza
void add_vector(const my_vector& v);//összeadás
static void print_vector(const my_vector& v);
};
#endif
구현 : get_coo 정적이기 때문에
#include "stdafx.h"
#include "my_Vector.h"
#include <iostream>
my_vector::my_vector(double a = 100, double b= 100, double c= 100):a(a),b(b),c(c){
//default contstructor
}
void my_vector::add_vector(const my_vector& v){
double v_a = get_coo(v, 1),
v_b = get_coo(v, 2),
v_c = get_coo(v, 3);
a+=v_a;
b+=v_b;
c+=v_c;
}
double my_vector::get_coo(const my_vector& v, unsigned int k){
switch(k){
case 1:
return a; //here are the errors
case 2:
return b;
case 3:
return c;
}
}
void my_vector::print_vector(const my_vector& v){
std::cout << get_coo(v, 1) << std::endl;
std::cout << get_coo(v, 2) << std::endl;
std::cout << get_coo(v, 3) << std::endl;
}
이 헝가리어인가요? 아마도 헝가리 표기법을 사용해야합니다 ...-) –
잠시 시간을내어 함수 이름을 적어 두십시오. 빌드 프로세스에 미치는 영향은 무시할 만하며 추가 코드를 추가하지 않습니다. 그러나 독자 및 다른 사람들 (예 : 독자 또는 스택 오버플로)에게 더 쉽게 읽을 수있는 코드로 만들어줍니다. –
왜 함수를 정적으로 유지 하시겠습니까? – Oktalist