• 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;
    }

  • 相关阅读:
    C++11并发之std::thread<转>
    YUV420格式解析<转>
    在windows、linux中开启nginx的Gzip压缩大大提高页面、图片加载速度<转>
    curl 超时设置<转>
    C++中map用法详解《转》
    同一台服务器配置多个tomcat服务的方法
    找出两个排好序的数组的中位数
    mysql中设置默认字符编码为utf-8
    大步小步攻击算法_完全版
    ACL登陆认证
  • 原文地址:https://www.cnblogs.com/charlexu/p/2854250.html
Copyright © 2020-2023  润新知