• 04737_C++程序设计_第2章_从结构到类的演变


    例2.1

    使用成员函数的实例。

     1 #define _SCL_SECURE_NO_WARNINGS
     2 
     3 #include <iostream>
     4 
     5 using namespace std;
     6 
     7 struct Point
     8 {
     9     void Setxy(double a, double b)//成员函数,用来重新设置数据成员
    10     {
    11         x = a;
    12         y = b;
    13     }
    14 
    15     void Display()//成员函数,按指定格式输出数据成员的值
    16     {
    17         cout << x << "	" << y << endl;
    18     }
    19 
    20     double x, y;//数据成员
    21 };
    22 
    23 void main()
    24 {
    25     Point a;//定义对象a
    26 
    27     a.Setxy(10.6, 18.5);//设置对象a的数据成员
    28     a.Display();//显示对象a的数据成员
    29 
    30     cout << a.x << "	" << a.y << endl;
    31 }

    例2.2

    使结构具有封装性的实例。

     1 #define _SCL_SECURE_NO_WARNINGS
     2 
     3 #include <iostream>
     4 
     5 using namespace std;
     6 
     7 struct Point
     8 {
     9 private:
    10     double x, y;//数据成员
    11 
    12 public:
    13     void Setxy(double a, double b)//成员函数,用来重新设置数据成员
    14     {
    15         x = a;
    16         y = b;
    17     }
    18 
    19     void Display()//成员函数,按指定格式输出数据成员的值
    20     {
    21         cout << x << "	" << y << endl;
    22     }
    23 };
    24 
    25 void main()
    26 {
    27     Point a;
    28 
    29     a.Setxy(10.6, 18.5);
    30 
    31     a.Display();
    32 
    33     //cout << a.x;
    34 
    35     //1>------已启动生成: 项目: hello, 配置 : Debug Win32------
    36     //    1>  main.cpp
    37     //    1>c:usersdenggl18.gdctcdocumentsvisual studio 2015projectshellohellomain.cpp(33) : error C2248 : “Point::x” : 无法访问 private 成员(在“Point”类中声明)
    38     //    1>  c:usersdenggl18.gdctcdocumentsvisual studio 2015projectshellohellomain.cpp(10) : note : 参见“Point::x”的声明
    39     //    1>  c:usersdenggl18.gdctcdocumentsvisual studio 2015projectshellohellomain.cpp(8) : note : 参见“Point”的声明
    40     //    == == == == == 生成 : 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 == == == == ==
    41         
    42 }

    例2.3

    使用构造函数初始化对象的实例。

     1 #define _SCL_SECURE_NO_WARNINGS
     2 
     3 #include <iostream>
     4 
     5 using namespace std;
     6 
     7 struct Point
     8 {
     9 private:
    10     double x, y;//数据成员
    11 
    12 public:
    13     Point()//无参数构造函数
    14     {
    15 
    16     };
    17 
    18     Point(double a, double b)//具有两个参数的构造函数
    19     {
    20         x = a;
    21         y = b;
    22     }
    23 
    24     void Setxy(double a, double b)//成员函数,用来重新设置数据成员
    25     {
    26         x = a;
    27         y = b;
    28     }
    29 
    30     void Display()//成员函数,按指定格式输出数据成员的值
    31     {
    32         cout << x << "	" << y << endl;
    33     }
    34 };
    35 
    36 void main()
    37 {
    38     Point a;//定义对象a
    39     Point b(18.5, 10.6);//定义对象b并赋初值
    40 
    41     a.Setxy(10.6, 18.5);//设置变量a的数据成员
    42 
    43     a.Display();//显示变量a的数据成员
    44     b.Display();//显示变量b的数据成员
    45 }

    例2.4

    定义类的实例。

     1 #define _SCL_SECURE_NO_WARNINGS
     2 
     3 #include <iostream>
     4 
     5 using namespace std;
     6 
     7 class Point
     8 {
     9 private:
    10     double x, y;//类Point的数据成员
    11 
    12 public:
    13     Point()//类Point的无参数构造函数
    14     {
    15 
    16     };
    17 
    18     Point(double a, double b)//具有两个参数的构造函数
    19     {
    20         x = a;
    21         y = b;
    22     }
    23 
    24     void Setxy(double a, double b)//成员函数,用来重新设置数据成员
    25     {
    26         x = a;
    27         y = b;
    28     }
    29 
    30     void Display()//成员函数,按指定格式输出数据成员的值
    31     {
    32         cout << x << "	" << y << endl;
    33     }
    34 };
    35 
    36 void main()
    37 {
    38     Point a;//定义类Point的对象a
    39     Point b(18.5, 10.6);//定义类Point的对象b并初始化
    40 
    41     a.Setxy(10.6, 18.5);//为对象a的数据成员赋值
    42 
    43     a.Display();//显示对象a的数据成员
    44     b.Display();//显示对象b的数据成员
    45 }

    例2.8

    演示使用string对象及初始化的例子。

     1 #define _SCL_SECURE_NO_WARNINGS
     2 
     3 #include <iostream>
     4 #include <string>
     5 
     6 using namespace std;
     7 
     8 void main()
     9 {
    10     string str1("We are here!");
    11     string str2 = "Where are you?";
    12 
    13     cout << str1[0] << str1[11] << "," << str1 << endl;
    14     cout << str2[0] << str2[13] << "," << str2 << endl;
    15     cout << "please input word:";
    16 
    17     cin >> str1;
    18 
    19     cout << "length of the " << str1 << " is " << str1.size() << "." << endl;
    20 }

    例2.9

    演示将美国格式的日期转换为国际格式的例子。

     1 #define _SCL_SECURE_NO_WARNINGS
     2 
     3 #include <iostream>
     4 #include <string>
     5 
     6 using namespace std;
     7 
     8 void main()
     9 {
    10     cout << "Enter the date in American format"
    11         << "(e.g., December 25, 2002):";
    12 
    13     string Date;
    14 
    15     getline(cin, Date, '
    ');
    16 
    17     int i = Date.find(" ");
    18 
    19     string Month = Date.substr(0, i);
    20 
    21     int k = Date.find(",");
    22 
    23     string Day = Date.substr(i + 1, k - i - 1);
    24     string Year = Date.substr(k + 2, 4);
    25     string NewDate = Day + " " + Month + " " + Year;
    26 
    27     cout << "Original date:" << Date << endl;
    28     cout << "Converted date:" << NewDate << endl;
    29 }

    例2.10

    演示使用complex和string对象及初始化的例子。

     1 #define _SCL_SECURE_NO_WARNINGS
     2 
     3 #include <iostream>
     4 #include <complex>
     5 #include <string>
     6 
     7 using namespace std;
     8 
     9 void main()
    10 {
    11     complex <int> num1(2, 3);
    12     complex <float> num2(3.5, 4.5);
    13 
    14     string str1("real is ");
    15     string str2 = "image is ";
    16 
    17     cout << str1 << num1.real() << ',' << str2 << num1.imag() << endl;
    18     cout << str1 << num2.real() << ',' << str2 << num2.imag() << endl;
    19 }

    例2.11

    演示string对象的例子。

     1 #define _SCL_SECURE_NO_WARNINGS
     2 
     3 #include <iostream>
     4 #include <string>
     5 #include <algorithm>
     6 #include <iterator>
     7 
     8 using namespace std;
     9 
    10 void main()
    11 {
    12     string str1 = "we are here!", str2 = str1;
    13 
    14     reverse(&str1[0], &str1[0] + 12);//str1字符串的元素逆向
    15 
    16     cout << str1 << endl;//输出逆向后的内容
    17 
    18     copy(&str1[0], &str1[0] + 12, &str2[0]);//原样复制到str2
    19 
    20     cout << str2 << endl;//输出str2
    21 
    22     reverse_copy(&str2[0], &str2[0] + 12, ostream_iterator<char>(cout));//逆向输出str2
    23 }

    例2.12

    演示string对象使用成员函数表示存储区间的例子。

     1 #define _SCL_SECURE_NO_WARNINGS
     2 
     3 #include <iostream>
     4 #include <string>
     5 #include <algorithm>
     6 #include <functional>
     7 #include <iterator>
     8 
     9 using namespace std;
    10 
    11 void main()
    12 {
    13     string str1 = "wearehere!", str2(str1);//使用str1初始化
    14 
    15     reverse(str1.begin(), str1.end());//字符串元素逆向
    16 
    17     cout << str1 << endl;
    18 
    19     copy(str1.begin(), str1.end(), str2.begin());//原样复制到str2,str2应能容纳下str1
    20 
    21     sort(str1.begin(), str1.end());//默认升幂排序
    22 
    23     cout << str1 << endl;//输出排序结果
    24     cout << str2 << endl;//输出字串str2的内容
    25 
    26     reverse_copy(str1.begin(), str1.end(), str2.begin());//逆向复制到字串str2的内容
    27 
    28     cout << str2 << endl;//输出逆向后的str2的内容
    29 
    30     reverse(str2.begin() + 2, str2.begin() + 8);//字串str2部分逆向
    31 
    32     copy(str2.begin() + 2, str2.begin() + 8, ostream_iterator<char>(cout));//输出逆向后的部分内容
    33 
    34     cout << endl;
    35 
    36     sort(str1.begin(), str1.end(), greater<char>());//降幂排序
    37 
    38     cout << str1 << endl;//输出排序后的字符str1
    39 
    40     str1.swap(str2);//互相交换内容
    41 
    42     cout << str1 << " " << str2 << endl;
    43 }

    例2.13

    演示string对象数组的例子。

     1 #define _SCL_SECURE_NO_WARNINGS
     2 
     3 #include <iostream>
     4 #include <string>
     5 #include <algorithm>
     6 #include <iterator>
     7 
     8 using namespace std;
     9 
    10 void main()
    11 {
    12     string str[] = { "We are here!","Where are you?","welcome!" };
    13 
    14     for (int i = 0; i < 3; i++)
    15     {
    16         copy(str[i].begin(), str[i].end(), ostream_iterator<char>(cout));
    17         cout << endl;
    18     }
    19 
    20     str[0].swap(str[2]);
    21     str[0].swap(str[1]);
    22 
    23     for (int i = 0; i < 3; i++)
    24     {
    25         cout << str[i] << endl;
    26     }
    27 }
  • 相关阅读:
    在Salesforce中创建Approval Process
    用C#基于WCF创建TCP的Service供Client端调用
    用 C# 实现一个简单的 Rest Service 供外部调用
    在Salesforce中将 Decimal 数据转换成美元格式
    在Asp.Net MVC中PartialView与EditorFor和DisplayFor的区别
    在Salesforce中对某一个Object添加自定义的Button和Link
    【LeetCode】227. Basic Calculator II
    【LeetCode】226. Invert Binary Tree
    【LeetCode】225. Implement Stack using Queues
    【LeetCode】224. Basic Calculator
  • 原文地址:https://www.cnblogs.com/denggelin/p/5545040.html
Copyright © 2020-2023  润新知