I am trying to create a class in separate files with private variables. So far, the code for my class is:
In TestClass.h
#ifndef TESTCLASS_H #define TESTCLASS_H #include <string> using namespace std; class TestClass { private: string hi; public: TestClass(string x); void set(string x); void print(int x); }; #endif
In TestClass.cpp
#include "TestClass.h" #include <iostream> #include <string> using namespace std; TestClass::TestClass(string x) { cout << "constuct " << x << endl; } void set(string x){ hi = x; } void print(int x){ if(x == 2) cout << hi << " x = two\n"; else if(x < -10) cout << hi << " x < -10\n"; else if(x >= 10) cout << hi << " x >= 10\n"; else cout << hi << " x = " << x << endl; }
When I try to build Code :: Blocks code, it says:
- ... \ TestClass.cpp: In the function 'void set (std :: string)':
- ... \ TestClass.cpp: 12: error: "hi" was not declared in this area
- ... \ TestClass.cpp: In the function 'void print (int)':
- ... \ TestClass.cpp: 17: error: "hi" was not declared in this area
- ... \ TestClass.cpp: 19: error: "hi" was not declared in this area
- ... \ TestClass.cpp: 21: error: "hi" was not declared in this area
- ... \ TestClass.cpp: 23: error: "hi" was not declared in this area
But when I run it (and not build), everything works.
c ++ private class
Mr. Giggums
source share