class,template, 重载
啥都不说,直接上例子
//============================================================================
// Name : test_class.cpp
// Author :
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include <vector>
using namespace std;
/*template <typename T>
T& operator+(T &a, T &b) //全局操作符重载
{
T c;
c = a+b;
return c;
}*/
template <class s>
class testclass
{
public:
testclass(const string& initname, s* initptr)
{
name = initname;
ptr = initptr;
}
testclass(const string& initname):name(initname) //初始化表
{
}
ostream& operator<<(ostream& out)
{
out<< name <<"\n";
return out;
}
string& operator+=(string &n) //成员函数操作符重载
{
this->name = this->name + n;
return this->name;
}
private:
string name;
s* ptr;
};
class form
{
public:
form(){};
int num;
};
int main() {
form* f = new form(); //类指针
f->num = 10;
// testclass<form> t("12345", f); //类对象
// t<<cout;
testclass<form> *t = new testclass<form>("12345", f);
*t<<cout;
string addstr("67890");
*t += addstr;
*t<<cout;
testclass<form> t2("67890");
t2<<cout;
const char* str = "^#[a-fA-F0-9]{6}$";
cout << str <<endl;
vector<int> iNum;
for(int i=0; i<10; i++)
{
iNum.push_back(i);
}
if(!iNum.empty())
{
vector<int>::iterator ite = iNum.begin();
while(ite != iNum.end())
{
cout << *ite <<"\t";
++ite;
}
cout << endl;
}
/* int a=1, b=2;
a=a+b;
cout<<a;*/
return 0;
}