• 这个问题该怎么修改的?


    课上的ppt是这样,上面那个继承还少了一个protected,我自己给加上去,主函数的类型原本是void类型,也不能编译,我改了int类型

    img

    img

    img

    • 阿里嘎多学长 2024-06-03 23:25
      关注

      以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


      根据您提供的截图信息,我将提供一些修改建议来解决您的C++代码中的编译错误。

      1. 构造函数参数不匹配问题

      错误 D gbs E0289C2665 表示您在创建 Technican, Manager, Salesman, 和 Salesmanager 对象时,提供的参数与构造函数的参数不匹配。

      解决方案

      • 确保每个类的构造函数都有匹配的参数列表。例如,如果 Employee 类的构造函数是这样的:
      Employee(int n, char* s) {
          no = n;
          strcpy(name, s);
          salary = 0;
      }
      

      那么,派生类的构造函数也应该接受相应的参数,并且正确地调用基类的构造函数。例如:

      class Manager : public Employee {
      public:
          Manager(int n, char* s) : Employee(n, s) {
              // 可能还有其他初始化代码
          }
          // 其他成员函数...
      };
      

      2. 不安全的 strcpy 函数使用

      错误 C4996 表示 strcpy 函数是不安全的,建议使用 strcpy_s

      解决方案

      • 替换 strcpystrcpy_s 或其他更安全的字符串复制函数。例如:
      strcpy_s(name, sizeof(name), s);
      

      3. 类 Employee 的构造函数修复

      确保 Employee 类的构造函数能够正确初始化成员变量。

      解决方案

      • 根据您提供的代码截图,构造函数看起来是正确的。确保 name 数组有足够的空间来存储复制的字符串,并且 salary 被初始化为0。

      4. main 函数的返回类型和对象创建

      确保 main 函数返回类型为 int,并且能够正确创建对象。

      解决方案

      • main 函数的返回类型从 void 改为 int,并在函数末尾返回一个值,通常是 return 0;
      • 确保 main 函数中创建对象时,构造函数的参数是正确的。
      int main() {
          Technican t(101, "王海");
          Manager m(103, "张三");
          Salesman s(102, "李四");
          Salesmanager sm(105, "付剑飞");
      
          // 调用成员函数
          m.pay();
          m.display();
          t.pay();
          t.display();
          s.pay();
          s.display();
          sm.pay();
          sm.display();
      
          return 0;
      }
      

      参考资料

      • C++ 构造函数:https://www.geeksforgeeks.org/constructor-in-c/
      • strcpy_s 函数:https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/strcpy-s-wcscpy-s?view=msvc-160
      • C++ 类和对象:https://www.tutorialspoint.com/cplusplus/cpp_classes_objects.htm

      请注意,以上代码示例是基于您提供的截图信息。如果类定义或需求有所不同,请相应调整代码。

      展开全部

    • 相关阅读:
      centos、Fedora/Red Hat Enterprise Linux 和 Ubuntu/Debian
      un9.20:解决项目启动时端口被占用的问题。
      1. 刷题——数组
      JavaWeb 学习笔记 10:Element
      centos docker中无法安装软件的解决方法
      微信小程序 - 2023年最新版手机号快捷登录详细教程
      PHP代码审计17—CLTPHP代码审计
      小侃设计模式(六)-适配器模式
      ijkplayer iOS编译问题之[-Wincompatible-function-pointer-types]
      外贸在谷歌搜索客户,为什么搜索出来的都是同行?
    • 原文地址:https://ask.csdn.net/questions/8113618