2011-03-22 3 views
0

오버로드 , 실제로는 위의 예제를 사용하는 것이 더 합리적 일 것입니다 (적어도 이론적 인 관점에서 코드는 유지 보수성을 필요로하지 않습니다).클래스 반환 형식 나는 일반적으로 내가 데이터 I는 다음과 같이</strong> 액세스 할 수 싶습니다 <strong>구조를 가지고 다음과 같은 상황으로 실행

저는 operator =가 위의 상황에서 작동하지만 간단한 액세스는 무엇인지 이해합니다. 출력 [i] .value를 사용해야합니다. 개념 설계와 프로그래머가 두통을 일으키지 않고 가독성을 위해 가장 좋은 솔루션은 무엇일까요?

답변

3

당신은 data에 할당 연산자 과부하를 추가 할 수 있습니다

class data { 
public: 
    double error, value; 

    void operator=(double d) { value = d; } 
}; 

비록를, 솔직히 말해서, 나는이 오히려 혼란 스러울 것 같아요. 그것은 당신이 물론, 그것을 사용하려는 방법에 따라 달라집니다,하지만 예를 주어, 나는 클래스의 생성자를 추가 청소기있을 거라고 생각 :

class data { 
public: 
    double error, value; 
    data(double value_arg, double error_arg) 
     : value(value_arg), error(error_arg) { } 
}; 

가 사용 :

outputs[i] = data(someValue, lastValue - someValue); 
+0

감사합니다, 아마도 생성자 솔루션을 사용하게 될 것입니다. 분명히 가장 명확하고 가장 명확한 것으로 보입니다. – dcousens