定义与初始化

定义时如果没有初始值系统将默认初始化,初始化的值会根据变量的类型和定义位置来定;

函数之外的变量将会被初始化为默认的值,int为0,string 为空;但函数内的变量将不会被初始化,因为他在栈区,初始化的方式新增了列表初始化,用{}初始化;以及()初始化,()初始化像极了调用构造函数;


 //四种初始化方式
 int sold = 0;
 int sole = {0};
 int solr{ 0 };
 int solt(0);
      

实际上这些都是指令,都是函数,string(n,‘x’);可以认为是string类的含参构造函数;

string ss("sssss");也可以认为是一种构造函数;

string ss(string &s)是拷贝构造函数;仅此而已;

string 类的操作:

os<<s,

is>>s;

getline(is,s);(从某个文件或显示器中读取一行,赋给s);

s.empty(),s.size();s[n]以数组的形式看待string类,随机访问一个元素;

重载符号:+。-,==,!=,<.<=,>,>=

s.size()的返回值是无符号的整数;

ctype头文件里的函数:

ctype中的函数:
isalnum(c)
isalpha(c)
iscntrl(c)
isdigit(c)
isgraph(c)
islower(c)
isprint(c)
ispunct(c)
isspace(c)
isupper(c)
isxdigit(c)
tolower(c)
tiupper(c)

使用范围for语句改变字符串中的字符:

可以使用auto&的方式;

string s("Hello,world");
for(autc&s:s){

c=toupper(c);//c是一个引用,赋值语句将修改s中字符的值;

}

cout<<S<<endl;

C++提供了两种调用构造函数的方式,显式调用和隐式调用;

class Stock{
public:

Stock();

Stock(const int&age,const int&ss);
private:
int m_age;
string m_ss;

};

Stock::Stock(){

}

Stock::Stock(const int&age,const int&ss){


m_Age=age;
m_ss=ss;

}

//显式调用;

Stock s=Stock("ss",20);


//隐式调用;
Stock("ss",20);


提供默认构造函数的方式:系统隐式提供,重载,给含参构造函数提供默认值;
//提供默认参数
Stock::Stock(const string&s="error",int n=0){}
//重载
Stock::Stock(){}



隐式的调用默认构造函数时,不要使用(),否则会认为是函数的声明;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值