#include <iostream>
class cBlaat
{
public:
void DoSomething()
{
std::cout << "Hello\n";
}
};
cBlaat * blaat;
int main()
{
blaat -> DoSomething();
return 0;
}
Output:
[subchatt@indl120175 C++]$ c++ testPointer1.cpp
[subchatt@indl120175 C++]$ ./a.out
Hello
[subchatt@indl120175 C++]$
On the contrary:
#include <iostream>
class cBlaat
{
public:
int i;
void DoSomething()
{
std::cout << "Hello\n";
}
void setVal(int arg_i){
i = arg_i;
}
int getVal(){
return i;
}
};
cBlaat * blaat = new cBlaat();
int main()
{
blaat -> DoSomething();
blaat -> setVal(3);
std :: cout << blaat -> getVal() << std :: endl;
return 0;
}
Output:
[subchatt@indl120175 C++]$ c++ testPointer.cpp
[subchatt@indl120175 C++]$ ./a.out
Hello
3
[subchatt@indl120175 C++]$
Changing
cBlaat * blaat = new cBlaat();
to
cBlaat * blaat;
will give a segmentation fault because no memory has been allocated.