我使用vscode,是c 的新手。我學會了如何創建一個頭檔案鏈接到它的cpp并將其用于main.cpp。 唯一困擾我的問題是,為什么它會導致一個錯誤,這是我的簡單代碼。
Name.h
#include <iostream>
#include <string>
class myname
{
public:
void setname(std::string name)。
void prname();
private:
std::string 名稱。
};
Name.cpp
#include "Name.h"/span>
void myname::setname(std::string name)
{
名稱 = 名稱。
}
void myname::prname()
{
std::cout<<"Hello :"<<Name<<std::endl。
}
Maiin.cpp
#include <iostream>
#include <string>
#include "Name.h"
使用 std::cout。
using std::string;
using std::endl;
int main()
{
myname Epoy; //IN FUNCTION INT MAIN: ERROR myname was not declared in this scope .
Epoy.setname("Jomar"); //note myname <-rename "但這不是錯誤的原因,這只是由于上面的錯誤而發生的" 。
Epoy.prname()。
return 0;
我也試了很多方法,我甚至用g 編譯了這個,Maiin.cpp Name.cpp - o Maiin 但還是沒能成功
uj5u.com熱心網友回復:
編輯:社區希望我補充更多細節。
我問的是,你是否在頭檔案中寫了頭防護。 #ifndef Name_H, #define Name_H, #endif ? 由于你使用vscode,你必須手動完成它。
像這樣:
#ifndef Name_H
#define Name_H
#include <iostream>
#include <string>
class myname
{
public:
void setname(std::string name)。
void prname()。
private:
std::string 名稱。
};
#endif
uj5u.com熱心網友回復:
你缺少一個C 的建構式:
class Foo {
public:
Foo() { /* your init code */ } // <-- 這是一個std.C 建構式。C 建構式
~Foo() { /* your clean-up code */ } // <-- 這是一個std. C 去構造器
};
int main(int argc, char **argv) {
Foo bar; //這里,你不需要。( )物件在堆上!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/314123.html
標籤:
