How to use virtual function in C++

2 Answers

0 votes
#include <iostream>
#include <fstream>

class Base {
public: 
    virtual std::string GetName() { return "Base"; }
};


class Example : public Base {
private:
    std::string m_Name; 
public: 
    Example(const std::string& name) 
        : m_Name(name) {}

    std::string GetName() override { return m_Name; }
};

int main() {
    Base* b = new Base();
    std::cout << b->GetName() << "\n";
    
    Example* e = new Example("Example");
    std::cout << e->GetName() << "\n";
}




/*
run:

Base
Example

*/

 



answered Mar 31, 2018 by avibootz
edited Jan 29, 2023 by avibootz
0 votes
#include <iostream>
#include <fstream>

class Base {
public: 
    virtual std::string GetName() { return "Base"; }
};


class Example : public Base {
private:
    std::string m_Name; 
public: 
    Example(const std::string& name) 
        : m_Name(name) {}

    std::string GetName() override { return m_Name; }
};

int main() {
    Base* b1 = new Base();
    std::cout << b1->GetName() << "\n";
    
    Example* e = new Example("Example");
    std::cout << e->GetName() << "\n";
    
    Base* b2 = e; // Base* point to an instance of Example class
    std::cout << b2->GetName() << "\n"; 
}




/*
run:

Base
Example
Example

*/

 



answered Jan 29, 2023 by avibootz
edited Jan 29, 2023 by avibootz

Related questions

3 answers 195 views
195 views asked Jan 29, 2023 by avibootz
2 answers 233 views
1 answer 183 views
1 answer 224 views
1 answer 258 views
1 answer 164 views
...