mirror of
https://github.com/kamranahmedse/developer-roadmap.git
synced 2025-08-28 19:49:50 +02:00
Fix code style (#4356)
This commit is contained in:
committed by
GitHub
parent
ce41b3a955
commit
1ec6005fe1
@@ -7,39 +7,37 @@ To resolve this ambiguity, you can use virtual inheritance. A virtual base class
|
|||||||
*Example:*
|
*Example:*
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
#include<iostream>
|
#include <iostream>
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
class Base {
|
class Base {
|
||||||
public:
|
public:
|
||||||
void print() {
|
void print() {
|
||||||
cout << "Base class" << endl;
|
std::cout << "Base class" << std::endl;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class Derived1 : virtual public Base {
|
class Derived1 : virtual public Base {
|
||||||
public:
|
public:
|
||||||
void derived1Print() {
|
void derived1Print() {
|
||||||
cout << "Derived1 class" << endl;
|
std::cout << "Derived1 class" << std::endl;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class Derived2 : virtual public Base {
|
class Derived2 : virtual public Base {
|
||||||
public:
|
public:
|
||||||
void derived2Print() {
|
void derived2Print() {
|
||||||
cout << "Derived2 class" << endl;
|
std::cout << "Derived2 class" << std::endl;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class Derived3 : public Derived1, public Derived2 {
|
class Derived3 : public Derived1, public Derived2 {
|
||||||
public:
|
public:
|
||||||
void derived3Print() {
|
void derived3Print() {
|
||||||
cout << "Derived3 class" << endl;
|
std::cout << "Derived3 class" << std::endl;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
int main()
|
int main() {
|
||||||
{
|
|
||||||
Derived3 d3;
|
Derived3 d3;
|
||||||
d3.print(); // Now, there is no ambiguity in calling the base class function
|
d3.print(); // Now, there is no ambiguity in calling the base class function
|
||||||
d3.derived1Print();
|
d3.derived1Print();
|
||||||
@@ -50,4 +48,4 @@ int main()
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
In the code above, `Derived1` and `Derived2` are derived from the `Base` class using virtual inheritance. So, when we create an object of `Derived3` and call the `print()` function from the `Base` class, there is no ambiguity, and the code executes without any issues.
|
In the code above, `Derived1` and `Derived2` are derived from the `Base` class using virtual inheritance. So, when we create an object of `Derived3` and call the `print()` function from the `Base` class, there is no ambiguity, and the code executes without any issues.
|
||||||
|
Reference in New Issue
Block a user