Love jeg ikke ændrer pointeren
Hej eksperterJeg har inde i en klasse en pointer til en anden klasse. Nu har den ene klasse en vis funktion som jeg gerne vil gøre const, men det kan jeg ikke da jeg ikke ved hvordan jeg lover ikke at ændre på pointeren.
Kodeeksempel:
#include <iostream>
#include <cstdlib>
using namespace std;
class test
{
public:
test(int i)
{
this->a=i;
}
int a;
};
class test2
{
public:
test2(int a)
{
tmp=new test(a);
}
void vis(void) const
{
cout<<tmp->a<<endl; // Her skal jeg finde en måde at love på
// jeg ikke ændrer noget
}
test *tmp;
};
int main()
{
test2 hej(3);
test2.vis();
system("pause");
return 0;
}
Dette giver 2 spørgsmål, der kan løse problemet.
1) Kan jeg på en eller anden måde "love" compileren at jeg ikke ændrer pointeren?
2) Kan jeg på en eller anden måde helt undgå pointeren. Kan objektet test2 godt indeholde test1 objektet på en anden måde?