c++学习的心得(不断完善中)

来源:互联网 发布:js同源策略是什么 编辑:程序博客网 时间:2024/05/17 04:18
1      静态数据成员的模板定义必须出现在类模板定义之外.
#include<iostream>
using namespace std;
template<typename T>
class  yang
{
public:
          yang(T i){ x=i;};
        ~yang(void){};
      void  print(void){ cout<<x<<endl;}
private:
         static T x;
};

template<typename T>
T yang<T>::x=0;
int main()
{
          yang<int> a(5);   
          a.print();
          system("pause");
}
2使用指向成员函数的指针
#include<iostream>
using namespace std;
class yang
{
    public:
typedef void (yang::*p)();
p pf;
     yang(void);
    void add(void);
    void print(void);
    void exec(void);
    private:
       int val;
};
yang::yang(void)
{
     val=0;
}
void yang::add(void)
{
       val+=1;
}
void yang::print(void)
{
      cout<<val<<endl;
}
void yang::exec(void)
{
     pf=&yang::add;
     (this->*pf)();
     pf=&yang::print;
 (this->*pf)();
}
int main(void)
{
    yang a;
    a.exec();
  return 0;
}
3  g++ 4.0.0居然不支持export.有那个compile支持export这个关键字呀

4类中的静态变量和静态函数的使用方法.
静态变量在所由的类对象中只有唯一的一个值,静态变量在类对象中是共享的.在静态函数中不能使用非静态变量
#include<iostream>
using namespace std;
class yang
{
    public:
       yang(void);
       void add(void){ val+=1;}
       void print(void){ cout<<val<<endl;}
       static void printf(void){ cout<<val<<endl;}
    private:
      static int val;
      int n;
};
int yang::val=0;      //在类体外定义
yang::yang(void)
{
    n=0;
}
int main()
{
      yang a;
      yang b;
      yang c;
      yang *p;
      a.print();
      a.add();
      c.add();
      a.add();
      p->add();
      c.print();
      yang::printf(); //静态函数的使用方法
}
原创粉丝点击