zoukankan      html  css  js  c++  java
  • c++知识学习 (1)

    C++中的常成员函数定义,

    常成员函数 

    在类中,可以使用const这个保留字来保护成员数据不被成员函数改写。

    我们把这种成员函数称为常成员函数。

    int getWeight() const;

     

    构造函数跟java挺类似的,很好理解。

    class Person{

    public:

    Person();

    }

    构造函数定义与调用时机。

    构造函数重载的作用   

    代码

    Person.h

     1 //
     2 //  Person.h
     3 //  ArrayTest
     4 //
     5 //  Created by 张学院 on 14-1-8.
     6 //  Copyright (c) 2014年 com.mix. All rights reserved.
     7 //
     8 
     9 //防止重复引用
    10 #ifndef __ArrayTest__Person__
    11 #define __ArrayTest__Person__
    12 
    13 #include <iostream>
    14 using namespace std;
    15 class Person{
    16 //---------成员变量--------
    17 public :
    18     
    19     int age;
    20     
    21 private :
    22     int weight;
    23     char name[30];
    24     char sex;
    25 //---------成员方法--------
    26 public:
    27     //----构造函数-------
    28     Person();
    29     //-----构造函数重载-----
    30     Person(int age);
    31     
    32     void setWeight(int weight);
    33     int getWeight() const;
    34     //char * getName() const;
    35     //const 指针,保证指针不被修改
    36     const char * getName() const;
    37   
    38     void info() const;
    39 };
    40 #endif /* defined(__ArrayTest__Person__) */

    Person.cpp

     1 //
     2 //  Person.cpp
     3 //  ArrayTest
     4 //
     5 //  Created by 张学院 on 14-1-8.
     6 //  Copyright (c) 2014年 com.mix. All rights reserved.
     7 //
     8 
     9 #include "Person.h"
    10 //------方法实现格式------
    11 //----返回值 类::方法名 (参数)------
    12 void Person::setWeight(int weight){
    13     //-----this 代表
    14     this->weight=weight;
    15 }
    16 //--------const 编译限制-------
    17 int  Person::getWeight() const{
    18     //weight++;报错
    19     return weight;
    20 }
    21 const char * Person::getName() const{
    22     
    23     return name;
    24     
    25 }
    26 
    27 void Person::info() const{
    28 
    29     printf("%s
    %d
    %c
    %d
    ",name,age,sex,weight);
    30 }
    31 //--------构造函数:初始化成员变量------------
    32 Person::Person(){
    33     printf("call the functon Person()
    ");
    34     strcpy(name, "a man");
    35     weight=60;
    36     age=20;
    37     sex='m';
    38 }
    39 //--------构造函数:重载------------
    40 Person::Person(int age){
    41     printf("call the functon Person(int age)
    ");
    42     strcpy(name, "a man");
    43     weight=60;
    44     this->age=age;
    45     sex='m';
    46     
    47 }

    main.cpp

     1 //
     2 //  main.cpp
     3 //  ArrayTest
     4 //
     5 //  Created by 张学院 on 14-1-6.
     6 //  Copyright (c) 2014年 com.mix. All rights reserved.
     7 //
     8 
     9 #include <iostream>
    10 
    11 #include <string>
    12 #include "Person.h";
    13 int main()
    14 {
    15     //----栈分配----
    16     //-----对象分配内存之后就会调用构造函数-------
    17     Person per;
    18     //strcpy(name, "iphone");报错
    19     per.info();
    20     
    21     //-------显示调用构造函数,如果写构造函数,系统会默认构造函数,所有的值为0--------
    22     //-------只有显示调用构造函数,才会调用系统会默认构造函数--------
    23     Person per1= Person();
    24     
    25     
    26     //-----堆分配----
    27     Person *per2= new Person();
    28     //-----指针调用方法->  -------
    29     per2->info();
    30     delete per2;
    31     
    32     
    33     Person *per3= new Person(40);
    34     per3->info();
    35     delete per3;
    36     return 0;
    37 }

    输出:

    call the functon Person()

    a man

    20

    m

    60

    call the functon Person()

    call the functon Person()

    a man

    20

    m

    60

    call the functon Person(int age)

    a man

    40

    m

    60

  • 相关阅读:
    python中range函数与列表中删除元素
    python碎片记录(一)
    Coursera在线学习---第八节.K-means聚类算法与主成分分析(PCA)
    Coursera在线学习---第七节.支持向量机(SVM)
    Coursera在线学习---第六节.构建机器学习系统
    Coursera在线学习---第五节.Logistic Regression
    梯度下降法与迭代结束条件
    利用并查集求最大生成树和最小生成树(nlogn)
    字符串二分查找
    map容器
  • 原文地址:https://www.cnblogs.com/aosting/p/3511105.html
Copyright © 2011-2022 走看看