类和对象知识总结

难难的类和对象。。。。

主要函数如下(类定义成绩【输入姓名,学号,科目,成绩,学分】):

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <vector>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
class x
{
private:

    string name,xuehao;
    double jidian;
    vector<string>kemu;
    vector<double>grade,xuefen;//该科成绩,学分。
public:

    void input()//输入
    {
        double g,u;
		string k;
        cin>>name>>xuehao;
        cin>>k>>g>>u;
	    kemu.push_back(k);
        grade.push_back(g);
            xuefen.push_back(u);

    }
    void jisuan()//计算绩点
    {
        double sum1=0,sum2=0;
        for(int i=0;i<grade.size();i++)
        {
            sum1+=((grade[i]/10)-5)*xuefen[i];
            sum2+=xuefen[i];
        }
        jidian=sum1/sum2;

	 }
    void output()//输出
    {
        cout<<name<<" "<<xuehao<<" "<<jidian<<" ";
    }
    double paixu()
    {
        return jidian;
    }

}stu[30];
bool cop(x a,x b)//对绩点进行排序
{
    return a.paixu()>b.paixu();
}
int main()
{

    int j=0,s;
	cin>>s;
    while(j<s)//跳出循环操作
    {
        stu[j].input();
        stu[j].jisuan();

        j++;
    }
    sort(stu,stu+s,cop);
    for(int l=0;l<s;++l)
	{stu[l].output();
	cout<<l+1<<endl;}
}

主要内容:
类:数据抽象(接口和实现分离)和封装。抽象数据类型:一组数据和对这组数据的操作。
1,数据成员,成员函数 ,对象,类。
2,数据成员的类内初始化:类内初始值创建对象时,类内初始值将初始化数据成员,没有初始值被默认初始化。
3,成员函数类外定义。例如:double Saledate::totalrevenue(){…} "::"界定符。函数前加类名字和作用域符,但都不属于全局函数,属于结构体。
4,访问限定符:public,private(自己成员函数和友元函数访问),protected。
5,结构体定义,类定义必须都以分号结束。
6,类和对象(数据和操作的封装体)。class。
7,this指针。系统自动给出,不可改变,指向当前操作对象不能改变指针的值也不能取地址。例如:this -> m=m;
8,构造函数:自动调用名字和类名字一致无返回类型可带参可不带参。构造函数初始化列表。
成员1(初始值)[,成员2(初始值2),…]
构造函数(参数表):初始化列表{函数体}
例如:X(int v=0):r(m){m=v;}
或X(int v=0):m(v),r(m){ }
或X(int v=0):r(m) {m=v;}
对象的定义方式:
X obj1;或X obj2(5);
9,析构函数:对象清除和销毁。负责在对象生存期结束时返回相关资源和自动释放资源。当对象离开作用时,或者用delete释放堆上创建对象。对象消亡之前做,删掉空间。
“~”例如:Account ::~Account(){ }
10,const成员:限定类中的数据成员描述数据成员。
返回类型 成员函数名(参数表) const {函数体}
引用前后都可以加const。只有声明为const的成员函数才可以被const对象调用。const对象不能调用非const成员函数,但非const对象可以调用const函数
11,get取值可以,但是不可改变值
12,static成员:属于类,不专属于某个对象。在类中只有一份,由这个类的所有对象共享访问(特定空间,所有对象共享),类只能定义一次`。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值