我试图修复我的矢量无法解决push_back问题,但是我收到了这个错误:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c ++ / V1 /存储器:1456:36: 没有用于初始化' Point'
的匹配构造函数
这是我的代码
类
class Point
{
public:
int x;
int y;
Uint8 r;
Uint8 g;
Uint8 b;
Point(int x, int y, Uint8 r, Uint8 g, Uint8 b) : x(x), y(y), r(r), g(g), b(b) {}
Point& operator=(Point const &np){
x=np.x;
y=np.y;
r=np.r;
g=np.g;
b=np.b;
return *this;
}
Point(const Point& point);
;
};
行可能会导致错误:
std::vector<Point> temp(10);
这也不起作用:
std::vector<Point> temp;
请帮忙
这里有更多错误信息希望这个帮助:
/Users/sum/Documents/3407ICT_Starter_Kit_v8/ProjectOSX/Source/Week3_T.cpp:8:10: 在包含的文件中 /Users/sum/Documents/3407ICT_Starter_Kit_v8/ProjectOSX/Source/Week3_T.cpp:8:
/Users/sum/Documents/3407ICT_Starter_Kit_v8/ProjectOSX/Headers/Week3_T.h:3:10: 在包含的文件中 /Users/sum/Documents/3407ICT_Starter_Kit_v8/ProjectOSX/Headers/Week3_T.h:3:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c ++ / V1 /向量:265:10: 在包含的文件中 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin /../ LIB / C ++ / V1 /向量:265:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c ++ / V1 / __ bit_reference:15:10: 在包含的文件中 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin /../ LIB / C ++ / V1 / __ bit_reference:15:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c ++ / V1 /算法:627:10: 在包含的文件中 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin /../ LIB / C ++ / V1 /算法:627:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c ++ / V1 /向量:925:25: 在实例化功能模板专业化 &#39;的std :: __ 1个:: allocator_traits
::构造&#39;请求
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c ++ / V1 /向量:1028:9: 在实例化成员函数&#st; :: __ 1 :: vector&gt; :: __ construct_at_end&#39;请求
/Users/sum/Documents/3407ICT_Starter_Kit_v8/ProjectOSX/Source/Week3_T.cpp:466:19: 在成员函数的实例化中,std :: __ 1 :: vector&gt; :: vector&#39;请求
/Users/sum/Documents/3407ICT_Starter_Kit_v8/ProjectOSX/Headers/Week3_T.h:15:5: 候选构造函数不可行:需要5个参数,但是0个 提供
/Users/sum/Documents/3407ICT_Starter_Kit_v8/ProjectOSX/Headers/Week3_T.h:24:5: 候选构造函数不可行:需要单个参数&#39; point&#39;, 但没有提供任何论据
答案 0 :(得分:4)
在标准库中,某些容器&#34;填写&#34;在未明确给出值时使用默认构造函数的值。 vector<Point> temp(10)
使用10个元素初始化向量,这些元素填充了类型的默认构造值。但是当你定义了这个构造函数时:
Point(int x, int y, Uint8 r, Uint8 g, Uint8 b) : x(x), y(y), r(r), g(g), b(b)
编译器不会隐式定义默认构造函数,因此现在没有构造函数可用。您可以通过定义另一个构造函数来修复编译器错误:
Point(){}