| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 1474 人关注过本帖
标题:c++学习笔记
只看楼主 收藏
ehszt
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:23
帖 子:1556
专家分:2868
注 册:2015-12-2
结帖率:100%
  已结贴   问题点数:20  回复次数:16   
c++学习笔记
也学别人专门开个贴子记录c++中自己碰到的有意思的东西
下面是我写的一个重载程序,我想问问虚函数和重载最大的区别是不是在于重载函数是用同名函数完成相似的功能,而虚函数是用同名函数完成不
同的功能?
#include <iostream>
#include <string.h>
using namespace std;
int max(int x,int y)
{
    return (x>y)?x:y;
}
double max(double a,double b)
{
    return (a>b)?a:b;
}
char *max(char *a,char *b)
{
    if(strcmp(a,b)>0)return a;
    return b;
}
main()
{
    int a,b;
    double m,n;
    char s1[10],s2[10];
    cout<<"please enter the int number:\n";
    cin>>a>>b;
    cout<<max(a,b)<<endl;
    cout<<"please enter the float number:\n";
    cin>>m>>n;
    cout<<max(m,n)<<endl;
    cout<<"please enter the string:\n";
    cin>>s1>>s2;
    cout<<max(s1,s2)<<endl;
}
再加个刚写的try catch异常处理程序,感觉这个try catch有点类似goto。
#include <iostream>
using namespace std;
main()
{
    int a,b;
    while(1)
    {
        try{
        cout<<"请输入两个整数a和b:"<<endl;
        cin>>a>>b;
        if(b==0)throw 0;
        cout<<a<<"/"<<b<<"="<<a/b;
        }
        catch(int)
        {
        cout<<"b不能为“0”请重新输入a和b!"<<endl;
        }
    }
   
}


[此贴子已经被作者于2017-7-1 20:58编辑过]

2017-07-01 14:15
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:224
帖 子:5346
专家分:29807
注 册:2011-1-18
  得分:20 
你这几个max是overload
虚函数的是override

异常机制特复杂,包括对象的释放,调用栈的展开 等等,而且还要保证这套异常机制在异常不发生的情况下没影响到运行效率。
2017-07-01 15:18
ehszt
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:23
帖 子:1556
专家分:2868
注 册:2015-12-2
  得分:0 
这个c++排序程序就这么点,我摘抄下来的。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
main()
{
    vector <int> numlist;
    int element;
    while(cin>>element) //当输入不为整型结束循环
    numlist.push_back(element);
    sort(numlist.begin(),numlist.end()); //这个我猜是algorithm头文件中的排序算法
    for(int i=0;i<numlist.size();i++)
        cout<<numlist[i]<<" ";
}
2017-07-01 20:55
ehszt
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:23
帖 子:1556
专家分:2868
注 册:2015-12-2
  得分:0 
回复 2楼 rjsp
override要覆盖一个虚函数?

[此贴子已经被作者于2017-12-29 11:18编辑过]

2017-07-01 21:02
ehszt
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:23
帖 子:1556
专家分:2868
注 册:2015-12-2
  得分:0 
c++文件处理,少了打开方式选项
实测a.txt中的数据,它总要少读取一个
#include <fstream>
#include <iostream>
using namespace std;
main()
{
    int d,sq;
    ifstream fin("c:\\a.txt");
    ofstream fout("c:\\b.txt");
    fin>>d;
    while(!fin.eof())
    {
        sq=d*d;
        cout<<d<<"*"<<d<<"="<<sq<<endl;
        fout<<d<<"*"<<d<<"="<<sq<<endl;
        fin>>d;
    }
    fin.close();
    fout.close();
 }

[此贴子已经被作者于2017-7-2 14:08编辑过]

2017-07-02 14:01
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:224
帖 子:5346
专家分:29807
注 册:2011-1-18
  得分:0 
回复 5楼 ehszt
打开方式是有的,只是可以缺省不写。

    fin>>d;
    while(!fin.eof())
    {
        ……
        fin>>d;
    }
   
改为

    while( fin>>d )
    {
        ……
    }
   

2017-07-02 20:15
ehszt
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:23
帖 子:1556
专家分:2868
注 册:2015-12-2
  得分:0 
回复 6楼 rjsp
原来这样也行,谢谢了。
2017-07-02 22:14
ehszt
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:23
帖 子:1556
专家分:2868
注 册:2015-12-2
  得分:0 
插个小故事,我觉得和学习有点关系。
小明想学乒乓球就报了个培训班。可报名交了钱去学习时教练什么都没说就让小明拿个球拍去跟别人打,小明纳闷:我交了那么多钱,怎么一句都不教我就让我
跟别人打?虽然有点纳闷小明还是照做了。小明笨拙的握着球拍把球拍来打去,不是打球没力,就是用力过猛,有时甚至连球都碰不到。过了半个小时,教练就
开始讲了,怎样握拍好打,新手发球都有些什么要领……这么一讲小明就有些懂了。如果教练一开始就讲,小明不一定能明白。所以说学习前先要熟悉那个情景,
不管你“打”的多烂,总要试试,不然老师讲什么你可能听不懂!

[此贴子已经被作者于2017-7-4 20:13编辑过]

2017-07-04 16:46
ehszt
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:23
帖 子:1556
专家分:2868
注 册:2015-12-2
  得分:0 
c++输入一行字符串
#include <iostream>
#include <string>
using namespace std;
main()
{
    string a;  //这里a的初始化大小为0,不像char数组有一个大小
    getline(cin,a);  //这里字符串a会根据输入长度调整大小,不会存在溢出。
    cout<<a<<endl;
}
2017-07-05 10:25
ehszt
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:23
帖 子:1556
专家分:2868
注 册:2015-12-2
  得分:0 
c++98新增了模板类vector,它是动态数组的替代器,存储在自由存储区或堆中。c++11新增了模板类array,它是定长数组的替代品,存储在栈中。
用法:
vector<typeName> vt(n_elem);
array<typeName,n_elem> arr;
vector中n_elem可以是变量也可以是常量。
array中n_elem只能是常量。
2017-07-09 12:04







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.087394 second(s), 8 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved