一、这是个关键字的问题,在template<>里面,class和typename完全是等价的,但鼓励使用typename,毕竟class不太准确。
二、在类定义的内部是肯定不需要再加template关键字的,除非你要定义的函数需要另一个模板参数。在类外面,肯定是要加template的。
三、这两个函数都是构造函数,不过是两个重载而已。sq_LList
以下定义了一个类模板--栈,这个栈很简单,只是为了说明类模板如何使用而已,最多只能支持100个元素入栈
//stack.cpptemplate
m_maxSize = 100;
m_size = 0;
m_pT = new T[m_maxSize];
}
template
delete [] m_pT ;
}
template
m_size++;
m_pT[m_size - 1] = t;
}
template
T t = m_pT[m_size - 1];
m_size--; return t;
}
template
}
C++类的定义:
C++中使用关键字 class 来定义类, 其基本形式如下:
class 类名
{
public:
//公共的行为或属性
private:
//公共的行为或属性
};
类的实现:
#include
using namespace std;
class Point
{
public:
void setPoint(int x, int y) //实现setPoint函数
{
xPos = x;
yPos = y;
}
void printPoint() //实现printPoint函数
{
cout<< "x = " << xPos << endl;
cout<< "y = " << yPos << endl;
}
private:
int xPos;
int yPos;
};
int main()
{
Point M; //用定义好的类创建一个对象 点M
M.setPoint(10, 20); //设置 M点 的x,y值
M.printPoint(); //输出 M点 的信息
return 0;
}
C++类的使用:
#include
#include "Point.h"
using namespace std;
int main()
{
Point M; //用定义好的类创建一个对象 点M
M.setPoint(10, 20); //设置 M点 的x,y值
M.printPoint(); //输出 M点 的信息
cout<< M.xPos <
return 0;
}
1、C++中的class是C++不同于C的关键所在;
面向对象中声明的类;
类是一组数据和对这些数据的操作(函数)的封装;
类中还可有访问的权限的控制
其中private只能由本类中的成员函数访问;
public可以由类外的成员函数访问;
protected是受保护的数据成员,在他的子类中(从此类继承产生的类)protected相当于private也就是其子类的成员函数可以访问,而其他的类中的成员函数不能访问;
2、例如:
class B;
class A
{
B b;
public:
void show()
{
cout< }
};
class B
{
int b;
B temp;
public:
B(){this->b=0;}
};
int main()
{
A a;
a.show();
}
第一个问题:这是个关键字的问题,在template<>里面,class和typename完全是等价的,但鼓励使用typename,毕竟class不太准确。
第二个问题:什么叫在public里面?在类定义的内部是肯定不需要再加template关键字的,除非你要定义的函数需要另一个模板参数。在类外面,肯定是要加template的。
第三个问题:这两个函数都是构造函数,不过是两个重载而已。
第四个问题:这个你仔细看sq_LList