C++ 通过对象方式 、指针方式两种方式去访问成员变量(属性或者方法)

准备

1.在VS中新建一个项目-Viscal C++ ---常规--空项目

2.建立一个.h的头文件 定义一个类 声明其成员(C#中的属性和方法)

#include<iostream>
#include<string>
using namespace std;
class Person
{
public:
    void setId(int id);
    int getId();
    void setName(string name);
    string getName();
    void setAge(int age);
    int getAge();
private:
    int _id;
    string _name;
    int _age;
};

建立一个.cpp的文件  声明一个类 实现成员变量初始化操作

#include "Per.h";
using namespace std;
void Person::setId(int id){
    this->_id = id;
}
void Person::setName(string name){
    this->_name = name;
}
void Person::setAge(int age){
    this->_age= age;
}
int Person::getId(){
    return this->_id;
}
string Person::getName(){
    return this->_name;
}
int Person::getAge(){
    return this->_age;
}
int main(){
    }

通过对象方式

Person Per;
    Per.setId(1);
    Per.setAge(25);
    Per.setName("Tony");
    int id = Per.getId();
    string name = Per.getName();
    int age = Per.getAge();
         cout << id <<","<< name <<","<< age<<endl;
    system("pause");
    return 0;

通过指针方式

Person *Per = new Person();
Per->setId(1);
Per->setName("Tommy");
Per->setAge(20);
int id = Per->getId();
string name = Per->getName();
int age = Per->getAge();
cout << id <<","<< name <<","<< age<<endl;
delete Per;
system("pause");
return 0;

完成代码例子

#include "Per.h";
using namespace std;
void Person::setId(int id){
    this->_id = id;
}
void Person::setName(string name){
    this->_name = name;
}
void Person::setAge(int age){
    this->_age= age;
}
int Person::getId(){
    return this->_id;
}
string Person::getName(){
    return this->_name;
}
int Person::getAge(){
    return this->_age;
}
int main(){
    //1.通过对象方式访问
    //Person Per;
    //Per.setId(1);
    //Per.setAge(25);
    //Per.setName("Tony");
    //int id = Per.getId();
    //string name = Per.getName();
    //int age = Per.getAge();
    //2.通过指针方式访问
    Person *Per = new Person();
    Per->setId(1);
    Per->setName("Tommy");
    Per->setAge(20);
    int id = Per->getId();
    string name = Per->getName();
    int age = Per->getAge();
     cout << id <<","<< name <<","<< age<<endl;
     delete Per;
    system("pause");
    return 0;
}

时间: 2024-08-07 10:59:19

C++ 通过对象方式 、指针方式两种方式去访问成员变量(属性或者方法)的相关文章

js对象取值的两种方式

var obj = {abc:"ss",nn:90}; var v1 = obj.abc;//使用点的方式 var v2 = obj["abc"];//使用中括号的方式 在实际项目中一般使用点,会方便许多,但是如果key是变量的话就不能使用点了,js会理解变量为对象的key值,造成混淆 1 var v3 = obj[key];//key是一个变量

java 多线程之卖票两种方式

1.通过extends Thread 1 /* 2 需求:简单的卖票,多个窗口同时买票 3 (共用资源) 4 创建线程的第二种方式:实现Runnable接口 5 6 步骤: 7 1,定义类实现Runnable接口 8 2,覆盖/重写Runnable接口中的run方法 9 将将线程要运行的代码存放在该run方法中 10 3,通过Thread类建立线程对象 11 4,将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数 12 为什么要将Runnable接口的子类对象传递给Thr

C++中对象创建的两种方式

在C++中,类的对象建立分为两种,一种是静态建立,如A a:另一种是动态建立,如A* ptr=new A:这两种方式是有区别的. 静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象.使用这种方法,直接调用类的构造函数. 动态建立类对象,是使用new运算符将对象建立在堆空间中.这个过程分为两步,第一步是执行operator new()函数,在堆空间中搜索合适的内存并进行分配:第二步是调用构造函数构造对象,初

iOS:创建单例对象的两种方式

单例模式:创建单例对象的两种方式 方式一:iOS4版本之前 static SingleClassManager *singleManager = nil; +(SingleClassManager*)sharedManager { @synchronized(self)  //同步加锁,在多线程中使用,可以使线程安全 { if(singleManager == nil) { singleManager = [[SingleClassManager alloc]init]; } } return

JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序

一.描述 自定义的类要按照一定的方式进行排序,比如一个Person类要按照年龄进行从小到大排序,比如一个Student类要按照成绩进行由高到低排序. 这里我们采用两种方式,一种是使用Comparable接口:让待排序对象所在的类实现Comparable接口,并重写Comparable接口中的compareTo()方法,缺点是只能按照一种规则排序. 另一种方式是使用Comparator接口:编写多个排序方式类实现Comparator接口,并重写新Comparator接口中的compare()方法,

求字符串长度 strlen(数组指针两种方式)

问题: 求字符串中所含有字符的个数(包括空格),即求字符串长度: #include <stdio.h> #include <assert.h> int _strlen(const char* str) { assert(str != NULL); int i=0; for(;*str++!='\0';i++); //for(;str++!=NULL;i++);//有些说这句也可以,但执行结果是死循环,str++即使越界也未必为NULL; return i; } int _strle

Asp.net Web API 返回Json对象的两种方式

这两种方式都是以HttpResponseMessage的形式返回, 方式一:以字符串的形式 var content = new StringContent("{\"FileName\": \"" + fileName + "\"}"); HttpResponseMessage response = new HttpResponseMessage() { Content = content }; response.Content

java基础复习之对于String对象,可以使用“=”赋值,也可以使用new关键字赋值,两种方式有什么区别?

String类型是实际工作中经常用到的类型,从数据类型上划分,String是一个引用类型,是API中定义的一个类.所以String类型的对象可以用new创建,例如String name=new String("string");为变量name进行赋值,值为"string" ,然而String类比其他类有些特殊,可以使用'='直接赋值,如 String name="string";也是为变量name进行赋值,值为"string"

WPF:将HTML RGB颜色值转化为Color对象的两种方式

原文:WPF:将HTML RGB颜色值转化为Color对象的两种方式 (1)方式一: Color color1 = (Color)System.Windows.Media.ColorConverter.ConvertFromString("#E0E0E0"); (2)方式二: Color color2 = ConvertToColor("#E0E0E0"); public static System.Windows.Media.Color ConvertToColo