| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4411 人关注过本帖, 1 人收藏
标题:c++学习笔记
取消只看楼主 加入收藏
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
字母全排列
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
    string letters;
    do
    {
        int count=0;
        cout<<"Enter the sequence (quit to quit):";
        cin>>letters;
        cout<<"Permutations of"<<letters<<endl;
        sort(letters.begin(),letters.end());
        cout<<letters<<endl;
        count++;
        while(next_permutation(letters.begin(),letters.end()))
        {
            count++;
            cout<<letters<<endl;
        }
        
        cout<<"上述字母组合一共有"<<count<<"种排法"<<endl;   
    }while(letters!="quit");
    cout<<"Done.\n";
    return 0;
   
}
2017-12-30 17:28
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
#include<iostream>
#include<iomanip>
using namespace std;
main()
{
    int a=4,b=3;
    double c;
    c=1.0*a/b;
    cout<<setiosflags(ios::fixed)<<setprecision(2)<<c;//这里如果不用setiosflags(ios::fixed)就是保留有效数字位数,如果用就是保留小数位位数。
}
2018-01-07 16:37
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
相同类的对象可以用“=”号来赋值,为什么又要弄出一个复制构造函数?
2018-01-08 16:55
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
好像 建立了对象后就分配了资源。不是很懂,先记下来。
#include <iostream>
using namespace std;
class t{
    private:
        int a;
        int b;
        public:
            t():a(0),b(0){
            };
            t(int m,int n){
                a=m;b=n;
            }
            dis(){
                cout<<a<<" "<<b<<endl;
            }
};
 main()
{
    t A(5,8),B;
    B=A;        //这是用赋值方法复制对象。
    B.dis();
}
用赋值运算符得到两个相同地址的对象,而复制构造函数为新对象分配了内存空间,是生产者。

[此贴子已经被作者于2018-3-10 12:17编辑过]

2018-01-09 09:09
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
#include <iostream>
#include <cstdarg>  //这个c和c++中都可以用
using namespace std;
int add(int a, ...)
{
    int s=0,m;
    va_list arg;
    va_start(arg,a);         //初始化va_list  
    for(int i=0;i<a;i++)
    {
        m=va_arg(arg,int);  //读取va_list参数
        s+=m;
    }
    va_end(arg);  //释放va_list
    return s;
}

main()
{
    int a[]={12,31,6,31,4};   //计算不定数组a中元素的和
    cout<<add(sizeof(a)/sizeof(a[0]),12,31,6,31,4);
   
}
2018-02-20 18:39
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
快排
#include <iostream>
#include <vector>
using namespace std;
int cmp(const void *a,const void *b)
{
    return *(int*)a-*(int*)b;
}
main()
{
    int a[10]={1,2,4,5,7,8,9,3,12,11};
    qsort(a,10,sizeof(a[0]),cmp);
    for(int m:a)
    cout<<m<<' ';
}
2018-03-08 14:34
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
#include <iostream>
using namespace std;
class t{
    private:
        int a;
        int b;
        public:
            t():a(0),b(0){
            };
            t(int m,int n){
                a=m;b=n;
            }
            dis(){
                cout<<a<<" "<<b<<endl;
            }
};
 main()
{
    t A(5,8),B;
    B=A;        //这是用赋值方法复制对象。
    B.dis();
    A.dis();
    cout<<&A<<" "<<&B<<endl; //输出发现两个对象地址并不相同。
}
2018-03-11 20:11
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
写了一个简单的类继承程序
#include <iostream>
#define PI 3.14159
using namespace std;

class point
{
    private: int a;
             int b;
    public:
        point(int m,int n):a(m),b(n){
        };
        show(){
            cout<<"该圆柱的底面圆心坐标是:"<<"\nX="<<
            a<<"  Y="<<b<<endl;
        }
};
class circle:public point
{
    int r;
    public:
        circle(int m,int n,int a):point(m,n){r=a;}
    double getsquare(){return PI*r*r;}
    virtual void display(){cout<<"圆柱底面面积为:"<<PI*r*r<<endl; //如果取消此处的virtual关键字,bk->display();ck->display();打印的都是底面积
    }
};
class yuanzhu:public circle
{
    int H;
    public:
        yuanzhu(int m,int n,int a,int b):circle(m,n,a){
            H=b;
        }
    double    getvolume(){
        return getsquare()*H;
        }
    virtual    void display(){
            cout<<"圆柱的体积为:"<<getvolume()<<endl;
        }
};
main()
{
    yuanzhu ak(2,3,1,10);
    circle m(2,3,1);
    ak.display();
    ak.circle::display();
    ak.show();
    circle *bk=&ak;
    circle *ck=&m;
    bk->display();
    ck->display();
   
}

[此贴子已经被作者于2018-11-11 12:46编辑过]

2018-11-08 22:15
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
书上例题:
class shape{
    public:
        virtual double area()=0;
};

class square:public shape{
    protected:
        double H;
    public:
        square(double i){H=i;}
        double area(){return H*H;
        }        
};

class circle:public square{
    public:
        circle(double r):square(r){
        }
        double area(){return H*H*3.14159;
        }
};

class triangle:public square{
    protected:
        double W;
    public: triangle(double h,double w):square(h){W=w;
    }
            double area(){return H*W*0.5;
            }
};

class rectangle:public triangle{
    public:
        rectangle(double h,double w):triangle(h,w){
        }
        double area(){return H*W;
        }
};

double total(shape *s[],int n)
{
    double sum=0.0;
    for(int i=0;i<n;i++)
    {
        sum+=s[i]->area();
    }
    return sum;
}

#include <iostream>
using namespace std;
 main()
{
    shape *s[5];
    s[0]=new square(4);        s[1]=new triangle(3,6);
    s[2]=new rectangle(3,6);    s[3]=new square(6);
    s[4]=new circle(10);
    for(int i=0;i<5;i++)
    {
        cout<<"s["<<i<<"]="<<s[i]->area()<<endl;
    }
    double sum=total(s,5);
    cout<<"The total area is:"<<sum<<endl;
}
2018-11-11 13:05
快速回复:c++学习笔记
数据加载中...
 
   



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

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