C/C++教程

c++学习笔记 一

本文主要是介绍c++学习笔记 一,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一 类和对象

c语言c++
数据+算法封装继承多态
数据与算法封装起来形成一个类用类定义出对象有多种的形态,重载函数等
#include<iostream>
using namespace std;
class person
	{
		public:
		//成员变量
		char* m_name;
		int m_age;
		bool m_sex;
        //成员函数
		void eat()
		{

		cout<<"吃饭"<<endl;
		}

	};

int main()
{
	person ps;

	ps.m_name="张三";
	ps.m_age=18;
	ps.m_sex=true;
	ps.eat();

	

	system("pause");
	return 0;
}

二 访问修饰符

        有三类访问修饰符private,public,protected,访问修饰符就是来区分类内的成员是否可以被访问,在类外和在类内被访问。

#include<iostream>
using namespace std;

 
//public        公共 类外可以访问
//private       私有 类外不可以访问 只有本类可以访问
//protected     保护 类外不可以访问 派生类可以访问
//默认为私有

class student
{
public:
   char* m_name;
private:
   int m_age;
protected:
   bool m_sex;
public:
	void show();
	
};

void student::show()
		{cout<<m_name<<" "<<m_age<<" "<<m_sex<<endl;
	}
int main()
{
	student s1;
	cout<<m_name<<endl;
    cout<<m_age<<endl;      //不可访问
    cout<<m_sex<<endl;      //不可访问

	system("pause");
return 0;
}

三 接口函数

        一般类内的成员变量设为私有防止成员变量被随意修改,要是想要修改成员变量就有了接口函数,类内用来访问私有成员的方法。

#include<iostream>
using namespace std;

class student
{
char* m_name;
int m_age;
float m_score;
public:
void setname(char* name);
char* getname();
};
void student::setname(char* name)
{
  m_name=name;
}
char* student::getname()
{
return m_name;
}
int main()
{

	student stu1;
	stu1.setname("tom");
	cout<<stu1.getname()<<endl;
	system("pause");
return 0;
}

四 构造函数和重载函数

用来初始化的函数,函数名与类名相同。重载函数则是名字相同的函数参数列表不同,体现出多态性,可以来让一个函数多种情况下使用

#include<iostream>
using namespace std;
class student
	{
	    public:
		
		    char* m_name;
		    int m_age;
		    float m_score;
        private:
            
            student();

	};
int main()
{
      student stu1;// 私有无法构造

systerm("pause")
return 0;
}

 构造函数及其重载函数

#include<iostream>
using namespace std;
class student
	{
	    public:
		
		    char* m_name;
		    int m_age;
		    float m_score;
    public:
            
            student();
            student(char* name);
            student(char* name,int age);
            void show();
	};
student::student()
{
     m_name="小明";
     m_age=17;
     m_score=92.5;
}
student::student(char* name)
{
    m_name=name;
}
student::student(char* name,int age)
{
m_name=name;
m_age=age;
}
void student::show()
{
cout<<m_name<<" "<<m_age<<" "<<m_score<<" "<<endl;
}

int main()
{
     student stu1;
      stu1.show();
     student stu2("小张");
    stu2.show();
     student stu3("小李",16);
     stu3.show();
system("pause")
return 0;
}

不写任何student的构造函数,会自己创建一个空的构造函数,如果写了student构造函数的重载但没写student();的话,无法直接初始化 student stu;用new也一样 

student *pstu =new student;//没有无参构造无法创建新的对象

student *pstu1 =new student("小明",17);
pstu1->show();

五 初始化列表

用于初始化成员变量

#include<iostream>
using namespace std;
class student
	{
	    public:
		
		    char* m_name;
		    int m_age;
		    float m_score;
    public:
            
            
            student(char* name,int age,float m_score);
            void show();
	};

student::student(char* name,int age,float m_score):m_name(name),m_age(age),
m_score(score)
{
    
}
//实现于作用域实现时
//格式      作用域+函数名+参数列表+:+成员变量(具体参数)....

int main()
{
    
system("pause")
return 0;
}

初始化的顺序根据成员变量定义时的顺序 与初始化别表无关

这篇关于c++学习笔记 一的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!