예제 코드 예상대로이렇게 배열을 캐스트 할 수 있습니까?
#include <cstdlib>
#include <iostream>
using namespace std;
class A {
public:
A(int x, int y) : x(x), y(y) {}
int x, y;
};
class B {
public:
operator A() {
return A(x,y);
}
float x, y;
};
void func1(A a) {
cout << "(" << a.x << "," << a.y << ")" << endl;
}
void func2(A *a, int len) {
for(int i=0; i<len; ++i) {
cout << "(" << a->x << "," << a->y << ")";
}
cout << endl;
}
int main(int argc, char** argv) {
B b[10];
func1(b[0]);
//func2(b, 10);
return(EXIT_SUCCESS);
}
func1
작동하지만 func2
은 컴파일 타임 오류가 발생합니다. 이 작품을 만들기 위해 클래스 B
에 추가 할 수있는 것이 있습니까? 나는 의심하지 않지만 물어 보는 것이 좋지 않습니까?
A
의 크기가 B
의 크기와 다르기 때문에 정상적으로 작동하지 않는다고 가정합니다.
그래, 나도 그래 ................. – stefanB
내가 그랬어. 감사합니다 – mpen
그래서 ... 어떻게 연산자'A()'를 추가 할 수 있습니까? – mpen