今日学习笔记

今天起的很晚。
以下为今天的学习笔记,以后只要没有琐事会天天发的。

.hpp是什么, 怎么用:
为c++的头文件,c++允许在.hpp文件中编写函数体的声明和实现代码。在调用函数时只需要包含其头文件即可。

pragma once

保证程序的不重复编译

模板类的静态成员
模板类中的静态成员变量声明了不同的函数实体将产生不同的静态成员变量。
模板参数:

整形模板参数:
    准确的说是整形常量
    #include 
    #include 
    using namespace std;
    template
    class array
    {
        T elems[size];
        public:
        T& operator[](unsigned i) throw (std::out_of_range) {
        if(i >= size) throw std::out_of_range("array access out of range.");
        else return elems[i];
        }
    };
    int main(void)
    {
        array array0;
        try{array0[11] = 0;}
        catch(std::out_of_range& e)
        {
        cerr<<"Access out of range."<

    template
    void foreach(T array[], unsigned size)
    {
        for(unsigned i=0; i
    void inc(T &v)
    {
        ++v;
    }
    template
    void dec(T &v)
    {
        --v;
    }
    template
    void print(T &v)
    {
        std::cout<<" "< >(array, 4);
        foreach >(array, 4);
        return 0;
    }
指针引用模板参数:
    指针和引用都要声明成全局变量
    #include 
    using namespace std;
    template
    struct wrapper
    {
       int get(){return *p;}
       void set(int v){*p = v;} 
    };

    int global_variable = 0;
    int main(void)
    {
        wrapper<&global_variable> gwrapper;
        gwrapper.set(1);
        cout<
    using namespace std;
    class some_value;
    typedef int (some_value::* some_value_mfp)(int);
    template
    int call(some_value &value, int op){return (value.*func)(op);}
    class some_value{
        int value ;
        public:
        some_value(int _value):value(_value){}
        int add_by(int op){return value += op;}
    };
    int main(void)
    {
        some_value v0(0);
        cout<(v0, 2)<
    using namespace std;
    template class Func, typename T>
    void foreach(T array[], unsigned size)
    {
        Func func;
        for(unsigned i=0; i
    struct inc
    {
        void operator()(T& v) const {v++;}   
    };
    template
    struct print
    {
        void operator()(T& v) const {cout<<" "<(array, 6);
        foreach(array, 6);
        return 0;
    }

异常:超出范围的值抛出的:头文件下的 std::out_of_rang

你可能感兴趣的:(今日学习笔记)