#include <iostream> using namespace std; class interface{ public: virtual int getAge()=0; virtual int getAge1()=0; }; class person:virtual public interface{ public: person(int a){ age = a; std::cout<<"age:"<<age<<endl; } int getAge(){ return age; } private: int age; }; class person1:virtual public interface{ public: person1(int a){ age1 = a; std::cout<<"age1:"<<age1<<endl; } int getAge1(){ return age1+12; } private: int age1; }; template<typename ... _AttributeExtensions> class student :virtual public _AttributeExtensions...{ public: student(int a); ~student(){} int n; }; template <typename ... _AttributeExtensions> student<_AttributeExtensions...>::student(int a):n(a), _AttributeExtensions(a)... { } int main(){ student<person,person1> s(22); std::cout<<"age1:"<<s.getAge1()<<std::endl; std::cout<<"age:"<<s.getAge()<<std::endl; return 0; }
ygy@ygy-VirtualBox:~/work/tmp$ g++ c.cpp ygy@ygy-VirtualBox:~/work/tmp$ ./a.out age:22 age1:22 age1:34 age:22
原文链接: https://www.cnblogs.com/yuguangyuan/p/15989909.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/397607
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!