C ++ - zmienne prywatne w klasach
Próbuję utworzyć klasę w oddzielnych plikach z prywatnymi zmiennymi.
Jak dotąd mój kod zajęć wygląda tak:
W TestClass.h d.
#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
W roku 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;
}
Kiedy próbuję zbudować w Code :: Blocks, mówi:
- ... \ TestClass.cpp: w funkcji 'void set (std :: string)':
- ... \ TestClass.cpp: 12: błąd: 'hi' nie został zadeklarowany w tym zakresie
- ... \ TestClass.cpp: w funkcji 'void print (int)':
- ... \ TestClass.cpp: 17: błąd: „hi” nie został zadeklarowany w tym zakresie
- ... \ TestClass.cpp: 19: błąd: 'hi' nie został zadeklarowany w tym zakresie
- ... \ TestClass.cpp: 21: błąd: 'hi' nie został zadeklarowany w tym zakresie
- ... \ TestClass.cpp: 23: błąd: „hi” nie został zadeklarowany w tym zakresie
Ale kiedy go uruchamiam (i nie buduję), wszystko działa.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
7 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Jest to konieczne, aby kompilator wiedział, że i są funkcjami składowymi klasy . A kiedy już to napiszesz, tworząc z nich funkcje członkowskie, będą mogli uzyskać dostęp do prywatnych członków klasy.
Również bez
TestClass::
, i staną się funkcjami bezpłatnymi.
Anonimowy użytkownik
Potwierdzenie od:
i
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
zamiast
to samo dla print ().
Zadeklarowałeś je jako funkcje globalne zamiast funkcji składowych TestClass.
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od: