类的实例化

C++中类的实例化有两种方式——在栈中实例化和在堆中实例化

在栈中实例化为静态分配内存,不需要手动回收,超出内存系统报错。

在堆中实例化为动态分配内存,需要使用delete回收。

#include<iostream>
#include<string.h>
#include<cstdio>
using namespace std;
class Person
{
public:
    int age;
    string name;
    int sex;
public:
    Person(int age,int sex,string name)
    {
        this->age=age;
        this->sex=sex;
        this->name=name;
    }
    int getAge();
    int getSex();
    string getName();
};
int Person::getAge()
{
    return this->age;
}
int Person::getSex()
{
    return this->sex;
}
string Person::getName()
{
    return this->name;
}
ostream &operator<<(ostream &os,Person &p)
{
    os<<p.getAge()<<" "<<p.getSex()<<" "<<p.getName();
    return os;
}
ostream &operator<<(ostream &os,Person *p)
{
    os<<p->getAge()<<" "<<p->getSex()<<" "<<p->getName();
    return os;
}
int main()
{
    //在堆中实例化
    Person *p1 = new Person(1,1,"name1");
    //在栈中实例化
    Person p2(2,2,"name2");
    cout<<p1<<endl;
    delete p1;
    cout<<p2<<endl;
}

在堆中实例化需要用指针来接收实例化的对象。

时间: 2024-10-11 13:33:13

类的实例化的相关文章

Python3基础 类的组合 把类的实例化放到一个新类里面

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ code: class Girls: def __init__(self,num): self.num=num class OurClass: #组合,其他类的实例化,在这里类的实例化中进行 def __init__(self,boyNum,girlNum): self.boys=Boys

创建Java类并实例化的基本过程

1 package com.sanguosha.java; 2 /* 3 * 面向对象实现的过程 4 * 1.创建类并设计类的成员(成员变量即属性and成员方法即方法) 5 * 2.通过类来创建类的对象,也称类的实例化 6 * 3.通过(对象.属性)和(对象.方法)调用,完成相应的功能 7 */ 8 public class Zoo { 9 public static void main(String[] args) { 10 //基本数据类型的实例化 11 int n=10; 12 //数组的

C++类的实例化对象的大小之sizeof()

之所以写这篇<C++类的实例化对象的大小之sizeof()>,是因为在参加笔试的时候遇到如下这么一道题,当时感觉就是这个一个坑,但,我还是义无反顾的跳了下去,因为存在知识点盲区啊.现,总结一下,你不知道的C++类的实例化对象的大小之sizeof(). class D { public: D() { } virtual ~D() { } private: int a ; char *p; }; 实例一: class A { }; A a; cout << sizeof(a) <

C++类的实例化的两种方法

C++ 类的实例化有两种方法: 直接定义对象: 先定义一个类: class A { public: A(); virtual ~A(); ... ... }; 类实现略. 用的时候: A a; a. 成员函数: a. 成员变量: a 就是一个对象. 定义一个类指针的方法: A *p = new A; p->成员函数: p->成员变量: 最后别忘了销毁对象:delete[] a;  A由系统创建并释放,你不要担心会出现内存泄露,但是生命期只有在本区域的大括号内,出了大括号就没用了.p是指针,要自

类的实例化过程

一.定义一个类 class Dog(object): # 定义class def __init__(self, name): # 构造函数,构造方法 == 初始化方法 self.name = name # d.name = name def say_hi(self): # 类的方法 print("Hello, I am a dog. My name is", self.name) def eat(self, food): print("%s is eating %s.&quo

用Activator.CreateInstance代替new实现类的实例化(转)

一直想得到这样一个函数,输入一个类的名称为参数,返回一个相应的类的实例. 这在工厂模式中是非常有用的 这样,可以使程序有更高的扩展性,例如,,下面的例子 如果现在有一个类,专门用来计算交通工具的速度,不同的交通工具计算方法是不一样的,但是到底有那些交通工具是未知的或者是可变的,这种情况下,我们可能觉得要在添加交通工具的时候,需要修改用来计算速度的那个类, 但如果用Activator .CreateInstance创建实例,通过接口技术,则只要向程序集添加一个交通工具类,而不需要修改任何其它代码.

【python】-- 类的实例化过程、特征、共有属性和私有属性

实例化过程 1.类的定义和语法 class dog(object): #用class定义类 "dog class" #对类的说明 def __init__(self,name): #构造函数或者是构造方法,也可以叫初始化方法 self.name = name def sayhi(self): #类方法 "sayhi funcation" #对类方法的说明 print("hello,i am a dog,my name is ",self.name

创建Java类并实例化深入理解

1 package com.sanguosha.java; 2 3 import java.util.Scanner;//导入包 4 5 public class TestPerson { 6 public static void main(String[] args) { 7 //Person类的实例化 8 Person p1=new Person(); 9 p1.eat(); 10 p1.sleep(); 11 p1.info();//调用info()方法来查看人的属性值 12 p1.age

面向对象-类与实例化对象

类: 一系列对象相似特征与技能的结合体 注:站在不同角度,分类不一样 在现实世界中:一定先有对象,再有类 在程序中:一定需先有类,再有对象 定义类并实例化对象: #定义类 class LuffyStudent: school='luffycity' def learn(self): print('is learning') def eat(self): print('is eating') def sleep(self): print('is sleeping') #实例化对象 stu1=Luf

1.元类介绍/2.自定义元类控制类的行为/3.控制类的实例化行为/4.控制类的实例化行为的应用

1.元类介绍 1.储备知识exec()参数1;字符串形式得命令参数2.全局作用域(字典形式),如果不指定默认就使用globals()参数3.局部作用域(字典形式),如果不指定默认就使用locals() 2.python 一切皆对象 ,对象可以怎么用? 2.1. 都可以被引用 x=obj 2.2. 都可以当作函数得参数传入 2.3. 都可以当作函数得返回值 2.4. 都可以当作容器类得元素 li=[func,time] # 类也是对象,Foo=type() 类是属于type() 类 3.什么叫元类