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 */
    };