C++类

 c++类学习——00

#include <iostream>
#include <cstring>//c中的字符串
#include <string>//c++的字符串

using namespace std;
class Test
{
// e类的私有方法,只能通过类内部访问
private:
    /* data */
public:
    double salary;
    // 类的构造函数,他和类的名称完全相同,不返回任何值,用于设置类成员的值,可以带参数
    // 类的构造函数不需要调用,只要创建该类的实例,就会自动执行该方法。
    Test(/* args */);
    // 类的析构函数,只在类的对象删除时执行,不会返回任何值,也不带参数
    // 析构函数有助于在跳出程序(比如关闭文件、释放内存等)前释放资源。
    // 类的析构函数也不需要调用,只要程序结束时,会将该类的实例从内存释放,就会自动执行该方法。
    ~Test();
};

Test::Test(/* args */)
{
    cout << "这是类的构造函数,不需要调用"<< endl;
}

Test::~Test()
{
    cout << "这是类的析构函数"<< endl;

}

//定义一个返回值是自定义类指针的函数
Test* retclass(double dbsalary){
    Test classtest1; //类初始化会调用Test()方法
    Test* classTest = &classtest1;
    classTest->salary = dbsalary; //使用指针时必须要有指向,否则会出现 Segmentation fault 错误
    cout<< classTest << endl;
    cout<< "这是函数内部测试成员,"<< classTest->salary << endl;

    return classTest;//返回一个指针,指向一个类的地址
    // 程序结束会执行类的析构方法,释放类的内存空间~Test()
}

int main(){
    // Test* test1;
    // test1->salary = 100.0;
    //引用测试
    Test var;
    Test &vartest = var;
    var.salary = 99;
    cout << "这是引用示例1,"<< vartest.salary << endl;
    vartest.salary = 100;
    //这里vartest引用类var,改变vartest的值仍会改变var的值,实际上引用就是将当前对象指向另一个对象,但是只能指一次
    cout << "这是引用示例2,"<< var.salary << endl;
    //引用测试结束

    cout << endl;

    //返回值是类对象的测试
    Test *pcl = NULL;
    pcl = retclass(999.99);
    /*这里返回值是一个Test类,调用retclass函数时,虽然在函数内部给salary赋值为999.99,
      但是本次赋值只在函数内部有效,通过返回值(类的地址)去访问类的成员是无效的,
      因为函数执行返回后就调用类析构函数,在内存中已经将创建的类释放*/
    cout << pcl << endl;
    cout << "函数外部调用类的成员,"<< (*pcl).salary << endl;//通过返回值(类的地址)去访问类的成员是无效的
    pcl->salary = 999;//需要重新赋值才有效
    cout << "函数外部重新对类的成员赋值,"<< pcl->salary << endl;
    //返回值是类对象的测试结束

    //字符串测试
    char str1[5] = {'l','l','l','l','\0'};
    char str2[5] = "ilov";
    string str3;
    str3 = "ilove";
    strcat(str1,str2);
    cout << "继续使用c的字符串,"<< "str1 的长度是:"<< strlen(str1) << ",str1= " << str1 << endl;
    cout << "使用C++字符串string类,"<< "str3 的长度是:"<< str3.size() << ",str3= " << str3 << endl;
    //字符串测试结束

    return 1;
}

引用

指向指针的引用

常量引用-const

 

 
posted @ 2019-12-31 14:58  BISTER  阅读(4)  评论(0)    收藏  举报  来源