很少注意到的main函数的另一个重载形式,int main(int argc,char *argv[])。
#include<bits/stdc++.h> #include<assert.h> using namespace std; int main(int argc,char *argv[]){ int (*f)(int,char *[])=main; if(argc!=0){ char ***a=&argv,*first=argv[0],ch=argv[0][0]; cout<<"argc= "<<argc<<endl; for(int i=0;i<argc;i++){ printf("argc[%d]= %s\n",i,argv[i]); } assert(***a ==ch); f(argc - 1,argv+1); } }
|
面向对象课上学的c++类的基本元素:
class Object{ Object(arg); Object(arg):Object(arg'); ~Object(void); Object(const Object &object); friend void func(arg); friend class ObjFriend; virtual void func(); virtual void func()=0; void func(); void func(arg); }
|
之前一直没有理解多态的作用,多态可以使编写父类的程序员无需关心子类的情况,可以将一个子类的实例赋值给父类,此时这个实例拥有子类的细节,当调用其中的虚方法的时候,能正确调用子类的实现方法,方便上游程序员编写类的相关方法。
一些细节:
- 无参构造方法,实例化的时候不能带括号。
- time(0)函数返回的是秒。
- 尽量多用const修饰。
一些好用的库:
- 正则表达式regix,可以方便的进行自定义字符提取,判断是否匹配格式。