c++基础2

来源:互联网 发布:互联网大数据面试题 编辑:程序博客网 时间:2024/05/17 04:37

大家好,今天为大家更新第二部分




什么是类、对象和成员

类是由若干个变量和相关的函数组成,而对象则可拥有这些变量和函数。

如果将硬盘比作一个类的话,那么硬盘的品牌则是该硬盘的一个对象,如:希捷硬盘是硬盘的一个对象,型号、容量和转速是该类的数据成员,读取数据、写入数据是该类的方法成员,又叫成员函数;数据成员和成员函数统称为该类的成员,对象拥有并且可以封装这些成员。

声明一个类

#include <iostream.h>

using namespace std;

class Human

{

public:

         void GetStature();

         void GetWeight();

private:

int stature();

int weight();

} ;

int main(int argc, char *argv[])

{

         return 0;

}

 

(public:)公有的:该类的对象可以直接访问这些成员

(private:)私有的:表示它后面的成员都是私有的,不能被对象直接访问,必须通过公有的成员函数才能访问

定义一个对象

定义一个对象很简单,只需要写下一个类名,空一格,然后敲入你要定义的对象名即可

类与对象的区别

类是一个抽象的名词,而对象则是实际的个体,比如说人类是泛指所有的人,而Peter却是一个具体的人

#include <iostream.h>

using namespace std;

class Person

{

public:

         void GetStature(){

                   cout<<stature<<endl;

         }

         void GetWeight();

         void SetStature(int x){

                   stature=x;

         }

         void SetWeight(int x);

private:

int stature;

int weight;

} ;

void Person::GetWeight()

{

         cout<<weight;

}

void Person::SetWeight(int x){

         weight=x;

}

int main(int argc, char *argv[])

{

         Person peter;

         peter.GetStature();

        

         cout<<"peter的身高是:";

         peter.SetStature(8);

         cout<<endl;

         peter.SetWeight(80);

         cout<<endl;

         cout<<"peter的体重是:";

         peter.GetWeight();

         return 0;

}

类的声明有两种方法:

第一种

class Person

{

public:

         void GetStature(){

                   cout<<stature<<endl;

         }

         void GetWeight();

         void SetStature(int x){

                   stature=x;

         }

         void SetWeight(int x);

private:

int stature;

int weight;

} ;

第二种:

void Person::GetWeight()

{

         cout<<weight;

}

定义类和对象容易犯的错误

类是个抽象的名词,它不是具体的某个个体,因此我们无法对它进行赋值操作

 

int = 5;这个是错误的,int是一个类型,不是具体的个体,应改为 int a=5;

注意点:

①  要使用关键字class来声明一个类

②  要使用类名来定义一个对象

③  不能混淆声明和定义,声明是说明该类是什么,定义则是为一个对象分配内存

④  要用点运算符来访问类的成员

⑤  要使用对象与点运算符访问对象的数据成员并给它们赋值

⑥  不要混淆类和对象,不要给类赋值

最后:

函数是用来执行一定功能的代码块,成员函数则是只能被类的对象所使用的函数;对象只能使用该类的函数,假如类没有提供某个函数,那么对象就不具备该函数

公有与私有

关键字public可以将类的成员说明为公有,即可以被该类的所有成员访问

如果在类中定义的成员没有加public: 关键字的话,则是默认为私有的成员(private:),私有成员不能被对象直接访问,只能通过在类中设定的接口函数来访问

内联函数

关键字inline声明函数,使用内联函数在提高效率的同时,也会增大程序的体积,当函数的体积很小的时候,使用内联函数很划算的。在不知道具体情况的时候最好不要用内敛函数

#include<iostream>

using namespace std;

inline int print();

int print(){

return 1;

}

inline int func(int);

int func(intx){

    return x;

}

int main(){

    int x;

    cout<<"请输入一个数字\n";

    cin>>x;

    cout<<"输出的数字为:"<<func(x)<<endl;

    cout<<print()<<endl;

}

头文件与源文件

我们可以将类的声明和定义存放在一个文件,一般是后缀为.h的文件,将程序执行的部分也存放在一个文件,一般是.cpp文件,这样就可以在.cpp文件的顶端写下代码使文件.h和.cpp相连:

# include “*.h”,中间的*是你给该文件取得名字

将类的定义和实现部分分开后,一个.h文件可以同时被多个.cpp文件所调用

const成员函数

如果不想让某个成员函数修改成员变量的值,那么就将这个成员函数声明为const

对于不应当改变对象的成员函数都应该声明为const,这样假如该成员函数视图去修改该对象的成员变量,编译器会提示错误

构造函数

在创建某个类的对象时,由于对该对象的状态(数据)不是很明确,因此需要对其进行初始化。

构造函数没有返回值

默认构造函数

如果我们不提供一个构造函数,那么系统会为我们自动创建一个构造函数,该函数什么参数也没有,而且也不会执行任何功能,它的作用只是构造一个对象。

我们可以创建多个构造函数,比如说可以创建一个类似于默认构造函数的不带参数的构造函数,同时也可以创建一个带参数的构造函数。

析构函数

析构函数与构造函数相反,构造函数用于构造一个空间,西沟函数则用于在对象被销毁后清除它所占用的内存空间,比如说它可以清楚由构造函数创建的内存

析构函数和构造函数基本一样,只是多了一个~,析构函数和构造函数都无返回值,析构函数不能有参数,一个类只能有一个析构函数,但是可以析构数组

#include<iostream>

using namespace std;

class rectangle

{

public:

         /*当没有定义构造函数的时候,系统自动为类生成无参数的构造函数*/

         rectangle();

         ~rectangle();

         void func(int x,int y){height=x;width=y;}

         void print() const{cout<<"长方形的面积是:"<<height*width<<endl;}

private:

         int height;

         int width;

};

rectangle::rectangle()

{

}

/*析构函数用来释放内存空间的*/

rectangle::~rectangle()

{

}

int main(){

         rectangle rec;

         rec.func(2,6);

         rec.print();

         return 0;

}

循环语句-goto

goto语句是最古老的语句,由一个名字加上一个”:”,就成为一个标号,该标号通常被放置在一段可执行的c++语句的左边,也就是i++的左边,通过它后面的goto语句来实现跳转

goto语句是一个转向语句,表示无条件的跳转到标号处

由于goto语句能直接跳到程序的某一处开始执行,因此会导致很多不易察觉的错误,并且是程序结构看上去不那么严密,松散很多

goto语句一旦出了错误,调试起来的话,很困难的,所以一般不用

while语句

当条件为真则执行括号里面的表达式,也就是说一直做到条件不满足才停止的,if语句只会执行一遍

当while的条件为真的时候,则while永无休止的执行下去

continue和break

当程序执行到某处就不再执行后面的语句,回到开始处执行,continue语句不执行它后面的语句

break只是退出循环,并不会退出整个语句

do-while

do不管程序是否满足要求,程序至少会执行一次

switch

当switch语句中如果没有break语句的结束,直到遇到右大括号才结束

总结:

假如想要无条件的跳转到某条语句执行,用goto语句,

假如想要对某种条件进行判断,为真或者为假分别执行不同的语句,用if语句

假如需要检测的条件很多,用if……else 语句

假如对数字或者字符检测并且需要检测的条件又很多,用switch语句,

假如能确定循环次数,用for语句,

假如不能确定循环次数,用while语句

假如循环体中的语句至少要执行一次,那么用do……while语句

最后,continue可以使循环又一次重新开始,而break可以使循环指教结束。


接下来的笔记很重要,进入指针,数组等学习阶段了


0 0
原创粉丝点击