首页 > 编程语言 >C++刷题笔记

C++刷题笔记

时间:2023-02-28 20:47:26浏览次数:40  
标签:运算符 Clock ++ 笔记 60 C++ 重载 刷题 op

  1. 初始化string数组

    string numbers[12] = {{"1"},{"2"},{"10"},{"11"},{"23"},{"25"},{"31"},{"36"},{"37"},{"102"},{"325"},{"438"}};
    
  2. 填充

for(int i = 0;i < 12;i++){
    cout << setw(6) << i + 1;
    while(s[i].num.size() < 3){
        s[i].num = "0" + s[i].num;
    }
    cout << setw(6) << s[i].num;
    cout << setw(6) << s[i].grade;
    cout << endl;
}
  1. 使用类模版在类前加template,示例化时classname a;

  2. 传实例时候记得传引用

  3. 如果定义了友元函数,那么这个函数函数可以访问类的私有成员

  4. 注意数据类型不要定义错了,特别是临时变量和类内的数据类型要一致

Clock operator++(Clock& op){
op.Second++;
if(op.Second >= 60){
op.Second -= 60;
op.Minute += 1;
if(op.Minute >= 60){
op.Minute -= 60;
op.Hour ++;
op.Hour %= 24;
}
}
return op;
}
Clock operator++(Clock& op,int){
Clock c = op;
++(op);
return c;
}

注意前置运算符重载没有参数,后置运算符重载有参数,前置运算符重载返回的为处理后的对象,后置运算符重载先用一个临时变量来存储改变之前的对象,然后对原对象进行改变,返回的是处理之前的对象
8. ```c++
class Student{
public:
    Student(){
        score = 0;
        isPass = 0;
        name = "";
    };
    friend istream& operator>> (istream& input,Student& s){
        input >> s.name >> s.score;
        cnt++;
        if(s.score >= 60){
            s.isPass = 1;
        }else{
            s.isPass = 0;
        }
        return input;
    }
    friend ostream& operator<<(ostream& output,Student& s){
        output << cnt << ". " << s.name << " ";
        if(s.isPass == 1){
            output << "PASS";
        }else{
            output << "FAIL";
        }
        return output;
    }
    static int cnt;
private:
    string name;
    int score;
    int isPass;
};
int Student::cnt = 0;

今天又一次在传引用的时候出错了,在重载流提取>>和流插入<<时候要出传入的变量为类对象的引用,而而且还有一个小问题,就是在最后要返回istream引用input和ostream引用output,这样才能进行连续的输入输出
8. 控制输出个数setprecision(n),n即为输出个数,若要精确到小数点后几位,则在上式后面加上fixed;

标签:运算符,Clock,++,笔记,60,C++,重载,刷题,op
From: https://www.cnblogs.com/linhongyu0090/p/17165890.html

相关文章

  • C++substr()函数
    C++中substr函数有三种用法,如下所示:假设strings(“student12”);stringx=s.substr()//默认时的长度为从开始位置到尾stringy=s.substr(5)......
  • C++string大小写转换
    #include<iostream>#include<string>#include<algorithm>usingnamespacestd;intmain(){stringstr="ancdANDG";cout<<"转换前的字符串:"<<str......
  • Python学习笔记
    python()表示元祖,元祖是一种不可变序列创建如:tuple=(1,2,3)取数据tuple[0]......tuple[0,2].....tuple[1,2]......修改元祖:元祖是不可修改的删除元祖de......
  • Flask学习笔记
    所有路由搜索都是自上而下搜索的注意:返回值为元组数据时,不能以以下形式返回:return('a','b','c')必须要以下面的形式返回: return'内容',*响应码return'11111',200......
  • 原根 学习笔记
    阶假设\(\gcd(a,p)=1\),如果\(a^x\equiv1\pmodp\),那么最小的\(x\)称之为\(a\)在模\(p\)意义下的阶,记作\(\delta_p(a)\)。在抽象代数中,这里的“阶”就是模\(p......
  • Swift学习笔记
    1.类型判断type(of:)2.拼接字符串\()要放在字符串里面,里面也可加各种数据类型3.类型别名typealiasS=String后面即可用S来代替String只有字符串类型才可以通过+拼接,......
  • Uikit学习笔记
    Dismiss让当前模态跳转的页面消失,返回到旧页面一个对象可以同时拥有数据和功能一般把变量放在方法的上面lround()把slider.value四舍五入Int(acr4_random(1......
  • Git学习笔记
    新建文件夹mkdir进入文件夹cd显示当前目录pwd修改文件viEsc退出输入状态shift+;+q!不保存文件的写入修改shift+;+wq!是保存文件的写入修改查看上......
  • C++里的memset
    memset函数是内存赋值函数,用来给某一块内存空间进行赋值的;包含在<string.h>头文件中,可以用它对一片内存空间逐字节进行初始化;原型为:void*memset(void*s,intv,......
  • 组合数学笔记-排列与组合
    目录排列与组合排列排列的定义与基本性质错位排列错位排列的定义与基本性质圆排列圆排列的定义与基本性质多重集排列多重集排列的定义与基本性质组合组合的定义与基本性质......