Я C ++, пишу небольшие программы.Я тоже хочу работать с несколькими файлами.Я застрял на использовании класса из другого файла.Я сделал простой тестовый проект, чтобы продемонстрировать свою проблему.У меня есть 3 файла.
testheader.h
#ifndef __testheader_H_INCLUDED__ // if Node.h hasn't been included yet...
#define __testheader_H_INCLUDED__ // #define this so the compiler knows it has been included
#include <string>
#include <iostream>
class testheader {
public:
testheader(std::string name){}
void write(){}
};
#endif
testheader.cpp
#include <string>
#include <iostream>
using namespace std;
class testheader {
public:
testheader(string name){
cout << name << endl;
}
void write(){
cout << "stuff" << endl;
}
};
anotherfile.cpp
#include <iostream>
#include "testheader.h"
using namespace std;
int main () {
cout << "testing" << endl;
testheader test("mine");
test.write();
return 0;
}
Я их компилируювсе в Linux, используя g ++ с командой
g++ -std=c++11 testheader.cpp anotherfile.cpp testheader.h -o another
Когда я запускаю «другой» исполняемый файл, вывод
test
, что я ожидаю, это выход
тестирование моих вещей
Кажется, мой объект класса "test" компилируется как null.Я не уверен, что это мой заголовок или файлы не связаны должным образом.Когда объект testheader создается в main, он явно не вызывает конструктор в testheader.cpp, как ожидалось.Вы можете помочь новичку?
Спасибо, Нуб