C++ 错误需要指导
需要帮助,请指导我。 如何解决如下所述的错误C++ 错误需要指导,c++,error-handling,C++,Error Handling,需要帮助,请指导我。 如何解决如下所述的错误 30:24:错误:在“,”标记之前应为“)” 在成员函数“int Address::compareTo(const Address&)”中: 41:26:错误:'std::string'没有名为'compareTo'的成员 #包括 使用名称空间std; 班级地址{ 内特房号; 弦街;; 国际公寓号码; 字符串城市; 字符串状态; 字符串zipCode;//例如,“47405-1234” 地址(国际门牌号码, 字符串街, //没有公寓号码 字符串城
- 30:24:错误:在“,”标记之前应为“)”
- 在成员函数“int Address::compareTo(const Address&)”中:
- 41:26:错误:'std::string'没有名为'compareTo'的成员
#包括
使用名称空间std;
班级地址{
内特房号;
弦街;;
国际公寓号码;
字符串城市;
字符串状态;
字符串zipCode;//例如,“47405-1234”
地址(国际门牌号码,
字符串街,
//没有公寓号码
字符串城市,
字符串状态,
字符串zipCode){
这->门牌号=门牌号;
这个->街道=街道;
这->城市=城市;
这个->状态=状态;
此->zipCode=zipCode;
}
地址(国际门牌号码,
字符串街,
国际公寓号码,
字符串城市,
字符串状态,
字符串zipCode){
这(门牌号、街道、城市、州、邮编);
此->公寓编号=公寓编号;
}
作废打印(作废){
std::cout您要查找的函数是,而不是与相比(Java、C#任何人)
另外,请注意,角度
未在您的范围内声明。您的意思是:
return this->zipCode.compare("angel");
还是忽略了变量
您还可以(“应”在适用的情况下):
- 不需要
这个->
- 作为
compare
的替代方法,您可以使用==
(这将返回true
表示相等)
print
和compareTo
应标记为const
- 在构造函数中使用成员初始值设定项列表
- 从标题中删除使用命名空间std;
的
在源文件中分离实现
使用包含标题的防护装置
适当压痕
通过const&
将string
参数传递给构造函数
30:24:错误:在“,”标记之前应为“)”
你有
this(houseNumber, street, city, state, zipCode);
这是胡说八道;这是指向正在构造的对象的指针,而不是函数
您可能正在尝试调用另一个构造函数来初始化某些数据成员。在C++11中,您可以委托给另一个构造函数,尽管我不知道是否有编译器支持此操作。这必须在初始化器列表中完成,而不是在构造函数体中完成:
Address(/*args*/) : Address(/*other args*/), apartmentNumber(apartmentNumber) {}
如果这不起作用,那么您必须在两个构造函数中复制初始化,或者将它们移动到一个成员函数中,并从两个构造函数调用该函数
您也可以考虑省去构造函数,而使用聚合初始化来代替:
Address address = {
123, "Fake Street", /* and so on */
};
尽管您应该只对只包含数据的类执行此操作,而不需要建立类不变量
41:26:错误:'std::string'没有名为'compareTo'的成员
正如错误所说,在std::string
中没有compareTo
成员。但是,有一个名为compare
的成员。假设您的注释暗示您想要与Java的string.compareTo
相同的行为,那么这就是您想要的
<>但是,在C++中,通过重写比较操作符来比较对象是更常见的(<代码>=< /代码>,代码> > 41:26:错误:“STD::String”没有成员名为“CabReStot”)。
Address address = {
123, "Fake Street", /* and so on */
};