c++ class和struct同时定义成员?

view公司代码发现的写法,编译应该是没问题的,我实测类似写法在vs2019报错!。

class Student_parent
{
public:

    int aa;
private:
    int nnum;
};
class Student:public Student_parent
{
public:
    int a;
private:
    int num;
};
struct data
{
    int b;
};

class xiaoming
{
   public:
    Student<datacccckkkk;
};

Student<datacccckkkk;,Student是类,data是结构体,这种声明成员cccckkkk的方式到底啥意思?

在c里面,struct相当于是一种特殊的class类,如果你要使用Student<data> ,需要使用模板。(不知道为什么data小写会报错,改成大写就没问题)

struct Data
{
	int b = 0;
};

class Student_parent
{
public:

	int aa;
private:
	int nnum;
};

class Student :public Student_parent 
{
public:
	int a;
private:
	int num;
};

template <typename T1,typename T2>
class xiaoming
{
public:
	T <T2>  cccckkkk;
};

int main()
{
	xiaoming<Student,Data> AA;
	return 0;
}

 

<>这个一般是模板使用的,但是目前这个代码里面没有使用模板。

如有帮助,请采纳一下,谢谢。

如果就这么几行代码的话,编译应该是通不过的吧,没有看到模板类的定义啊