M
Michael
Hi All,
I have the following:
#include <iostream>
class BaseClass {
protected:
int var;
public:
void setVar(int var){
this->var = var;
std::cout << "using BaseClass\n";
}
virtual void showVar() = 0;
};
class ClassA : public BaseClass {
public:
void setVar(int var){
this->var = var;
std::cout << "using ClassA\n";
}
void showVar(){
std::cout << "using ClassA var is " << var;
}
};
int main(){
BaseClass* base;
base = new ClassA;
base->setVar(12); //I know I have a magic number here, please ignore
this
base->showVar();
}
why does base->setVar() call the function in the BaseClass, not the one in
ClassA? Shouldn't ClassA override the BaseClass function?
Thanks for your help
Michael
I have the following:
#include <iostream>
class BaseClass {
protected:
int var;
public:
void setVar(int var){
this->var = var;
std::cout << "using BaseClass\n";
}
virtual void showVar() = 0;
};
class ClassA : public BaseClass {
public:
void setVar(int var){
this->var = var;
std::cout << "using ClassA\n";
}
void showVar(){
std::cout << "using ClassA var is " << var;
}
};
int main(){
BaseClass* base;
base = new ClassA;
base->setVar(12); //I know I have a magic number here, please ignore
this
base->showVar();
}
why does base->setVar() call the function in the BaseClass, not the one in
ClassA? Shouldn't ClassA override the BaseClass function?
Thanks for your help
Michael