0
我有模板函數change
需要一個函數,它需要int
並返回一個類型爲A
的對象。所以我想我可以使用的A
使用自定義構造函數作爲模板函數
class A {
int y;
public:
explicit A(int y) : y(2 * y) {
}
};
class B {
A x;
public:
B(int x) : x(x) {
}
template<typename F>
void change(int y, F func) {
x = func(y);
}
};
int main(void) {
B b(7);
b.change(88, A()); // << here
return 0;
}
的構造函數,但編譯器說no matching function for call to ‘A::A()’
我怎樣才能使它工作?
在'類A'加上'A()=默認;'在'公共'部分。 –
@πάνταῥεῖ但它會使用'A(int y)'構造函數嗎? –
@πάνταῥεῖ我不需要'C++ 11' –