代码之家  ›  专栏  ›  技术社区  ›  Harrison Dongasaurus

C++接口(头文件)和实现文件不起作用

  •  -2
  • Harrison Dongasaurus  · 技术社区  · 7 年前

    我正在学习一个C++类,由于某种原因,我无法让头文件中的类在我的一个程序上工作。我正在使用Visual Studio 2017,我使用Visual Studio中的解决方案资源管理器将头文件和实现文件与测试文件一起添加。

    我的程序中有两个构造函数,一个是默认的,另一个不是。我试着从每个文件中删除第二个,程序运行了,但我无法让它以其他方式工作。

    头文件:

    #pragma once
    class BuckysClass {
    public:
    BuckysClass();
    BuckysClass(string);
    void coolSaying();
    };
    

    实施文件:

    #include "stdafx.h"
    #include <iostream>
    #include "BuckysClass.h"
    #include <string>
    using namespace std;
    
    BuckysClass::BuckysClass() {
       cout << "Bucky is ";
    }
    BuckysClass::BuckysClass(string x) {
       cout << x;
    }
    void BuckysClass::coolSaying() {
       cout << "preachin to the choir" << endl;
    }
    

    #include "stdafx.h"
    #include <iostream>
    #include <string>
    #include "BuckysClass.h"
    using namespace std;
    
    int main() {
    
    BuckysClass buckysObject;
    buckysObject.coolSaying();
    
    BuckysClass buckysObject2("Bucky is not ");
    buckysObject2.coolSaying();
    system("Pause");
    return 0;
    }
    
    3 回复  |  直到 7 年前
        1
  •  1
  •   Li Kui    7 年前

    语法错误标识符“string”

    #include <string>//include the string header
    class BuckysClass {
    public:
      BuckysClass();
      BuckysClass(std::string);//add the namespace identifier
      void coolSaying();
    };
    
        2
  •  0
  •   Arrrow    7 年前

    您的头文件BuckysClass。h没有 <string> 包含头文件。

    #include<string>
    using namespace std;
    

    您应该从相应的中删除这些include。cpp文件并保留BuckysClass。h在cpp文件中。

        3
  •  -1
  •   Harrison Dongasaurus    7 年前

    以下是测试文件的更多图片以及我无法在上面发布的错误消息。

    Test File

    Error Messages