C++的笔记学习第一篇,认识C++

在一个类中包含两种成员: 数据和函数,分别称为C++数据成员和成员函数。

关于类:

    类是C++新增加的重要数据类型,有了类,就就可以实现面向对象程序设计方法中的封装、信息隐蔽、继承、派生、多态等功能。

关于函数的重载

在编程时,有时我们要实现的是同一类的功能,只是有些细节不同。例如希望从3个数中找出其中的最大者,而每次求最大数时数据的类型不同,可能是3个整数、3个双精度数或3个长整数。

程序设计者往往会分别设计出3个不同名的函数,其函数原型为:
int max1(int a int b, int c); // 3个整数中的最大者
double max2(double a double b double c); // 3个双精度数中最大者
long max3(long a long b long c);// 3个长整数中的最大者

C++允许用同一函数名定义多个函数,这些函数的
参数个数和参数类型不同。这就是函数的重载(function overloading)overloading)。即对一个函数名重新赋予
它新的含义,使一个函数名可以多用

下面就是一个max()函数重载的例子

#include<iostream>
using namespace std;
int main()
{

        int max(int a,int b,int c);
        double max(double a,double b,double c);
        long  max(long a,long b,long c);

        int i1,i2,i3,i;
        cin>>i1>>i2>>i3;
        i = max(i1,i2,i3);
        cout<<"i_max = "<<i<<endl;

        double d1,d2,d3,d;
        cin>>d1>>d2>>d3;
        d = max(d1,d2,d3);
        cout<<"i_max = "<<d<<endl;

        long g1,g2,g3,g;
        cin>>g1>>g2>>g3;
        g = max(g1,g2,g3);
        cout<<"g_max = "<<g<<endl;

        return 0;
}

上例3个max函数的函数体是相同的,其实重载函数并不要求函数体相同。重载函数除了允许参数类型不同以外,还允许参数的个数

例4.6 编写一个程序,用来求两个整数或3个整数中
的最大数。如果输入两个整数,程序就输出这两个
整数中的最大数,如果输入3个整数,程序就输出
这3个整数中的最大数。
#include <iostream>
using namespace std;
int main( )
{
    int max(int a,int b,int c);
    max(int a,int b,int
    //函数声明
    int max(int a,int b);
    max(int a,int
    int a=8,b=-12,c=27;

    cout<< max(a,b,c)=′′<<max(a,b,c)<<endl //输出3个整数中的最大者
    cout<<′′max(a,b,c)=′′<<max(a,b,c)<<endl; //

    cout<< max(a,b)=′′<<max(a,b)<<endl
    cout<<′′max(a,b)=′′<<max(a,b)<<endl;
}

int max(int a,int b,int c)
{
    if(b>a) a=b;
    if(c>a) a=c;
    return a;
}

int max(int a,int b)
{
    if(a>b)
            return a;
    else
            return b;
}

函数模板的定义:

template < typename T> 或 template <class T>
通用函数定义

#include<iostream>
using namespace std;
template <typename T>
T max(T a,T b,T c)
{
        if(b>a) a= b;
        if(c>a) a = c;
        return a;
}

int main()
{
        int i1 = 185,i2 = -76,i3 = 567,i;
        double d1 = 56.67,d2 = 90.21,d3 = -321.35,d;
        long g1 = 6789,g2 = -912345,g3= 674738,g;
        i = max(i1,i2,i3);
        d = max(d1,d2,d3);
        g = max(g1,g2,g3);
        cout << "i_max = "<<i<<endl;
        cout << "f_max = "<<d<<endl;
        cout << "g_max = "<<g<<endl;
        return 0;
}

sting函数的用法,c++ 里面独有的string变量,使用这个string相当强悍

#include<iostream>
#include <string>
using namespace std;
string name[50],num[50];
int n;
int main()
{
    void input_data();
    void search(string find_name);
    string find_name;
    cout<<"please input number of this class:";
    cin >> n;
    input_data();
    cout<<"please input name you want to find:";
    cin >> find_name;
    search(find_name);
    system("pause");
    return 0;
}

void input_data()
{
    int i;
    for(i = 0;i<n;i++)
    {
        cout<<"input name an NO.of student"<<i+1<<endl;
        cin>>name[i]>>num[i];
    }
}

void search(string find_name)
{
    int i;
    bool flag = false;
    for(i = 0;i<n ;i++)
    {
        if(name[i] ==find_name)
        {
            cout << name[i] << "has been found,his num is "<<num[i]<<endl;
            flag = true;
            break;
        }
        if(flag == false)
            cout<<"can‘t find this name";
    }
}

C++的笔记学习第一篇,认识C++

时间: 2024-10-09 06:15:23

C++的笔记学习第一篇,认识C++的相关文章

ImageJ 学习第一篇

ImageJ是世界上最快的纯Java的图像处理程序.它可以过滤一个2048x2048的图像在0.1秒内(*).这是每秒40万像素!ImageJ的扩展通过使用内置的文本编辑器和Java编译器的ImageJ的开发插件.500多插件可用. 数据类型:8位灰度或索引色,16位无符号整数,32位浮点和RGB色彩. 文件格式:读写所有支持的数据类型为TIFF(非压缩)或原始数据.打开和保存GIF,JPEG,BMP,PNG,PGM,FITS和ASCII.打开DICOM.使用URL打开的TIFF.GIF文件.J

C# 基础笔记(第一篇)

C#基础 概念:.net与c#.net/dontnet:一般指.net framework框架,一种平台,一种技术c#(charp):一种编程语言,可以开发基于.net的应用. *java既是一种技术又是一种编程语言.                           .net都能干什么?开发桌面应用程序   Winforminternet应用程序    Asp.net/webservice C/S:客户机(Client)/服务器模式(Server)B/S:浏览器(Browser)/务器模式(

Java图像处理最快技术:ImageJ 学习第一篇

ImageJ是世界上最快的纯Java的图像处理程序.它可以过滤一个2048x2048的图像在0.1秒内(*).这是每秒40万像素!ImageJ的扩展通过使用内置的文本编辑器和Java编译器的ImageJ的开发插件.500多插件可用. 数据类型:8位灰度或索引色,16位无符号整数,32位浮点和RGB色彩. 文件格式:读写所有支持的数据类型为TIFF(非压缩)或原始数据.打开和保存GIF,JPEG,BMP,PNG,PGM,FITS和ASCII.打开DICOM.使用URL打开的TIFF.GIF文件.J

Eclipse插件开发 学习笔记 PDF 第一篇到第四篇 免分下载 开发基础 核心技术 高级进阶 综合实例

<<Eclipse插件开发 学习笔记>>,本书由浅入深.有重点.有针对性地介绍了Eclipse插件开发技术,全书分为4篇共24章.第一篇介绍Eclipse平台界面开发的基础知识.包含SWT控件的使用.界面布局.事件处理等内容:第二篇是插件开发核心技术,主要介绍插件开发的核心知识要点,包含行为(Action).视图(ViewPart).编辑器(Editor).透视图(Perspective)等10章的内容.第三篇主要讲述插件开发的高级内容,包含开发高级内容.富client平台技术(R

Android基础学习第一篇—Project目录结构

写在前面的话: 1. 最近在自学Android,也是边看书边写一些Demo,由于知识点越来越多,脑子越来越记不清楚,所以打算写成读书笔记,供以后查看,也算是把自己学到所理解的东西写出来,献丑,如有不对的地方,希望大家给与指正. 2. 由于类似于读书笔记,可能格式神马的会比较随(hen)意(chou),大家看着受不了,可以使劲吐槽. *************************************我只是分割线***************************************

Golang学习-第一篇 Golang的简单介绍及Windows环境下安装、部署

序言 这是本人博客园第一篇文章,写的不到位之处,希望各位看客们谅解. 本人一直从事.NET的开发工作,最近在学习Golang,所以想着之前学习的过程中都没怎么好好的将学习过程记录下来.深感惋惜! 现在将Golang的学习点滴记录分享,废话到此,下面进入正文. 注:此文及以后所有内容中的开发平台为:Windows 开发工具为:JetBrains Gogland x64版本 官方下载地址为:https://www.jetbrains.com/go/download/#section=windows

Java学习第一篇---Java入门准备

这是我的第一篇博客,以后也会写自己学习Java的过程.一些知识点.心得体会等,以此鼓励自己坚持学习! 现在开始了我学习Java的生涯:[个人下载的Jdk版本是jdk-8u5-windows-x64] 1.安装之后的目录: ->Source Code: 安装这个选项将会安装Java所有核心类库的源代码 ->bin: 该路径下存放了JDK的各种工具命令,常用的Javac.java等命令. ->db: 该路径是安装Java DB的路径[DB(data base,数据库)是依照某种数据模型组织起

《你的灯亮着吗》阅读笔记之第一篇与第二篇

首先我看到的是“走出问题的乌托邦”,这小小的七个段落就我让我有点没有搞懂,感觉像是研究问题的一本哲学书,感觉很苦恼,尤其不爱看书的我加上这样热的天气,让我很烦躁,最终导致对那些绕来绕去的话让我很蒙圈,但是我还是咬牙一个字一个字的坚持读了下来. 我还在想这本书没有目录吗?就是一段段的像是前面七段话这样的文章吗?后来我发现我错了,原来还是有目录的,目录就藏在这七个小小的段落之后,但是看到目录后我更蒙圈了,第一篇:问题是什么?.第二篇:这个问题是什么?.第三篇:什么事真正的问题?.第四篇:这是谁的问题

【Intel AF 2.1 学习笔记】第一篇:程序结构

<!doctype html> <html> <head> <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no"> <link rel="stylesheet" type="text/css" href="js/af2.1/css/af.ui.mi