精华内容
下载资源
问答
  • C++创建类的对象(类的初始化)的方法

    万次阅读 多人点赞 2018-08-07 21:03:55
    本文主要介绍c++中创建类的对象(类的初始化)的两种方法,即“直接使用类名创建对象”和“使用new创建对象”这两种方法。 1 概述 “直接使用类名创建对象”和“使用new创建对象”这两种创建类的对象的方法的区别...

    本文主要介绍c++中创建类的对象(类的初始化)的两种方法,即“直接使用类名创建对象”和“使用new创建对象”这两种方法。

    1 概述

    “直接使用类名创建对象”和“使用new创建对象”这两种创建类的对象的方法的区别如下:

    • new创建的对象会赋值给类指针,此对象可在多处使用;
    • new创建的对象在使用完时,必须要使用delete销毁该对象,否则会造成内存泄露(new申请的对象,只有调用到delete时才会执行析构函数);而直接使用类名创建的对象,则不需要手动销毁该对象,因为该类的析构函数会自动执行;
    • new创建的对象使用的是堆空间;而在局部、直接使用类名创建的对象则使用栈空间;
    • new创建的对象会赋值给类指针,指针用途广泛,比如作为函数返回值、函数参数等;
    • 频繁调用(不同)对象的场合并不适合使用new方法创建对象,原理同new申请和delete释放内存相同。

    综上,我们在决定使用哪种方式创建类的对象时,需要根据实际的应用场合,选择一种合适的方法。

    2 示例代码

    这里编写了一份简单的示例代码,展示了“直接使用类名创建对象”和“使用new创建对象”这两种创建类的对象的方法。示例代码(class_init_test1.cpp)如下:

    #include "iostream"
    #include "string"
    
    using namespace std;
    
    class ClassOne
    {
    public:
        int m_one;
    public:
        void PrintSomething(const string& strInput, const int& nInput);
    };
    
    void ClassOne::PrintSomething(const string & strInput, const int & nInput)
    {
        cout << strInput << nInput << endl;
    }
    
    
    int main()
    {
        // 直接使用类名创建对象
        ClassOne c1;
        c1.m_one = 1;
        string strSomething = "m_one value is: ";
        c1.PrintSomething(strSomething, c1.m_one);
    
        // 使用new创建对象
        ClassOne *c2 = new ClassOne();
        c2->m_one = 2;
        c2->PrintSomething(strSomething, c2->m_one);
        if (NULL != c2)
        {
            // 使用delete删除对象
            delete c2;
            c2 = NULL;
        }
    
        return 0;
    }
    
    

    编译并运行上述代码,结果如下:

     

    展开全文
  • IDEA创建类时添加类注释 已有的类补充类注释

    idea创建类时添加类注释(细节)

    File -> Settings -> Editor -> File and Code Templates
    在这里插入图片描述

    创建一个模板

    Includes页签,新建一个java_header模板(后面有一些可用的模板内容)

    Name:java_header,Extension:java
    在这里插入图片描述
    模板内容(后面有一些可用的模板内容)

    /** 
     * @PACKAGE_NAME: ${PACKAGE_NAME}
     * @NAME: ${NAME}
     * @USER: ${USER}
     * @DATE: ${DATE}
     * @TIME: ${TIME}
     * @YEAR: ${YEAR}
     * @MONTH: ${MONTH}
     * @MONTH_NAME_SHORT: ${MONTH_NAME_SHORT}
     * @MONTH_NAME_FULL: ${MONTH_NAME_FULL}
     * @DAY: ${DAY}
     * @DAY_NAME_SHORT: ${DAY_NAME_SHORT}
     * @DAY_NAME_FULL: ${DAY_NAME_FULL}
     * @HOUR: ${HOUR}
     * @MINUTE: ${MINUTE}
     * @PROJECT_NAME: ${PROJECT_NAME}
    **/
    

    引用模板

    Files页签,选择Class,修改第二行

    第二行默认为

    #parse("File Header.java")

    表示引用Includes页签的File Header模板

    修改引用自定义的模板

    #parse("java_header")
    在这里插入图片描述

    如果公用的模板可以写在Includes页签的File Header里,Class、Interface、Enum等默认引用的就是File Header模板。

    保存即可。

    效果

    新创建一个Class类即可自动生成设置好的注释

    package com.shuai.controller;
    
    /**
     * @PACKAGE_NAME: com.shuai.controller
     * @NAME: HeaderController
     * @USER: yangs
     * @DATE: 2018/11/18
     * @TIME: 16:50
     * @YEAR: 2018
     * @MONTH: 11
     * @MONTH_NAME_SHORT: 十一月
     * @MONTH_NAME_FULL: 十一月
     * @DAY: 18
     * @DAY_NAME_SHORT: 星期日
     * @DAY_NAME_FULL: 星期日
     * @HOUR: 16
     * @MINUTE: 50
     * @PROJECT_NAME: spring-boot-shuai
     **/
    public class HeaderController {
    }
    

    效果截图
    在这里插入图片描述

    网上的一些可用模板内容

    1

    /**
     * ${NAME}
     * 
     * @author shuai
     * @date ${DATE}
     */
    

    2

    /**
     *@ClassName ${NAME}
     *@Description TODO
     *@Author ${USER}
     *@Date ${DATE} ${TIME}
     *@Version 1.0
    **/
    

    模板内可以使用的变量

    标识 描述
    ${PACKAGE_NAME} name of the package in which the new file is created
    ${USER} current user system login name
    ${DATE} current system date
    ${TIME} current system time
    ${YEAR} current year
    ${MONTH} current month
    ${MONTH_NAME_SHORT} first 3 letters of the current month name. Example: Jan, Feb, etc.
    ${MONTH_NAME_FULL} full name of the current month. Example: January, February, etc.
    ${DAY} current day of the month
    ${DAY_NAME_SHORT} first 3 letters of the current day name. Example: Mon, Tue, etc.
    ${DAY_NAME_FULL} full name of the current day. Example: Monday, Tuesday, etc.
    ${HOUR} current hour
    ${MINUTE} current minute
    ${PROJECT_NAME} the name of the current project
    ${NAME} name of the new class specified by you in the Create New Class dialog

    具体看IDEA上面的描述
    在这里插入图片描述

    已有的类后添加类注释

    一些已经创建好的类忘了设置类注释,或者需要再修改类注释的时候可以这样设置

    File -> Settings -> Editor -> Live Templates,点击右侧绿色加号,选择1.Live Templates
    在这里插入图片描述此时会自动创建一个user的group,并且让我们开始编辑模板
    在这里插入图片描述

    Abbreviation:*header(缩写,快捷键启动的字符串),Description:类注释(描述)
    快捷键不要太普通,容易与一些默认的重复(不要用/**

    Template text编写模板内容(和上面创建类自动生成的类注释使用同样的模板)

    /**
     * $NAME$
     * 
     * @author shuai
     * @date $DATE$
     */
    

    注意此时要使用$key$占位

    选择下面的Define(曾经编辑过选择Change),选中里面的Java复选框(Java及内部都选中)。
    在这里插入图片描述

    点击右侧的Edit variables按钮,弹出页面会列出模板中占位的变量,在Expression列选择需要的值,点击ok。
    在这里插入图片描述

    修改右侧Options内的Expand with,改触发方式,默认Tab,可以改成Enter,点击ok。
    在这里插入图片描述

    此时设置好了。

    在类的指定位置输入快捷键*header(会有提示)
    在这里插入图片描述
    点击回车键(Enter)触发,即可生成想要的注释。
    在这里插入图片描述

    展开全文
  • C# 创建类的对象数组

    万次阅读 2019-02-12 22:52:32
    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;...namespace _0606_创建类的对象数组 { class Program { static void Main(string...
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace _0606_创建类的对象数组
    {
        class Program
        {
            static void Main(string[] args)
            {
                //数组:集合,具有相同数据类型的变量。
                //数组  array (数组的每一个成员叫做数组的元素或者数组的项)
                //数组元素数据类型[]数组名称
                /* 赋值法 
                数组元素数据类型[]数组名称  =  new 数组元素数据类型[元素数量N];
                数组名称[] = *****;
                数组名称[] = *****;
                .........
                数组名称[N-1]= *****;
                */
    
                int x; int y; int z;
    
                int[] myint1 = new int[4];
                //创建n个变量的集合;运算是直接操作值类型变量,
                myint1[0] = 1;
                myint1[1] = 2;
                myint1[2] = 3;
                myint1[3] = 4;
                //对象数组,方式1
                Class药品[] myClass药品 = new Class药品[4];//四个地址值
                myClass药品[0] = new Class药品();
                myClass药品[1] = new Class药品();
                myClass药品[2] = new Class药品();
                myClass药品[3] = new Class药品();
    
                Class药品[] myClass药品01 = new Class药品[5]
                     {   new Class药品(),
                         new Class药品(),
                         new Class药品(),
                         new Class药品(),
                         new Class药品(),
                      };
    
    
                Class药品[] myClass药品02 = new Class药品[]
                    {   new Class药品(),
                         new Class药品(),
                         new Class药品("下火药"),
                         new Class药品(),
                         new Class药品(),
                     };
                Class药品[] myClass药品03 =
                  {   new Class药品(),
                         new Class药品(),
                         new Class药品(),
                         new Class药品(),
                         new Class药品(),
                   };
                Program myProgram = new Program();
                myProgram.DisplayObjectMembers(myClass药品03[1]);
    
                Console.Read();
            }
    
            void DisplayObjectMembers(Class药品 mypwYaoPing)
            {
                Console.WriteLine("您创建的药品ID为【" + mypwYaoPing.int药品ID + "】对象相关字段信息如下:\n"
                     + "通用名(无初始值):" + mypwYaoPing.str通用名 + "\n"
                     + "规格(无初始值):" + mypwYaoPing.str规格 + "\n"
                 );//[i]脚标  下标
            }
            
    
            //C#遍历数组
            static void Main1(string[] args)
            {
                int odd = 0;
                int eve = 0;
                int[] array = new int[100];
                for(int i = 0; i < array.Length; i++)
                {
                    array[i] = i * 5;
                }
                foreach(int j in array)
                {
                    if (j % 2 == 0)
                    {
                        eve++;
                    }
                    else
                    {
                        odd++;
                    }
                    Console.WriteLine("奇数有" + odd + "个");
                    Console.WriteLine("偶数有" + odd + "个");
                    Console.ReadLine();
                }
            }
    
        }
    
        public class Class药品
        {
            #region 定义pwYaoPing类的常规字段
            public int int药品ID;//药品ID    
            public string str通用名;//通用名
            public string str规格;//规格    
            public decimal dec销售价格;//销售价格
            public string str批号;//批号   
            #endregion
            #region 构造方法重载。方法重载定义:方法名相同,形参个数和类型不同。
            public Class药品()
            {
                Random myRandom = new Random();
                int药品ID = myRandom.Next();//随机赋值YaoPingID   
            }
            public Class药品(string str通用名Private)
            {
                str通用名 = str通用名Private;
                Random myRandom = new Random();
                int药品ID = myRandom.Next();//随机赋值YaoPingID     
            }
            #endregion
        }
    
    }
    

    如上描述如有不懂,或想学习更多技术知识,可以扫码关注麒琳技术栈公众号,欢迎在线咨询

    展开全文
  • vuejs创建类

    千次阅读 2017-10-12 18:25:42
    创建类 song.jsexport default class Song{ constructor({id,mid,singer,name,album,duration,image,url}){ this.id = id this.mid = mid this.singer = singer this.name = name

    创建类 song.js

    export default class Song{
        constructor({id,mid,singer,name,album,duration,image,url}){
          this.id = id
          this.mid = mid
          this.singer = singer      
          this.name = name
          this.album = album
          this.duration = duration
          this.image = image
          this.url = url
        }
    }

    工厂方法: 不直接调用new,直接返回实例的方法,代码的优化

    expoort function createSong(musicData){
      return new Song({
          id:musicData.songid,
          mid:musicData.songmid,
          singer:filterSinger(musicData.singer),
          name:musicData.songname,
          album:musicData.albumname,
          duration:musicData.interval,
          img:"https://asd.hellio${musicData.albumid}kj",      
          url:'https://thirdparty.com${musicData.songid}.pm4.musci',
      })
    }
    function filterSinger(singer){
       let ret = [];
       if(!singer){
           return ''
       }
      singer.forEach((s) => {
          ret.push(s.name)
      })
      return ret.join('/')
    }

    使用类

    import {creatSong} from 'common/js/song'
    
    _nornallizeSongs(list){
      let ret = []
      list.forEach((item)=>{
          //对象结构赋值
          let {musicData} = item
          //转化 musicData --> song
          if(musicData.songid && musicData.albummid){
               ret.push(createSong(musicData))
             }
      })
      return ret;
    }
    展开全文
  • 一、打开File > Settings... 二、设置并apply 三、创建类,即可看到效果
  • 创建类的数组

    千次阅读 2019-05-16 16:03:57
    今天做的一道题要创建类(类名为id)的数组,开始时只写了 id[] ID=new id[10]; 结果运行时一直出错,后来想了想发现正确的格式应为 id[] ID=new id[10]; for(int i;i<10;i++) ID[i]=new id(); ...
  • python动态创建类

    千次阅读 2017-02-08 19:44:07
    python动态创建类 Dynamically create a type with Python
  • JS创建类和对象

    千次阅读 2018-07-08 17:31:34
    JavaScript 创建类/对象的几种方式在JS中,创建对象(Create Object)并不完全是我们时常说的创建类对象,JS中的对象强调的是一种复合类型,JS中创建对象及对对象的访问是极其灵活的。JS对象是一种复合类型,它允许...
  • python之创建类的两种方法

    千次阅读 2018-08-22 19:33:21
    创建类第一种普遍方式可能都清楚,用class关键字: #第一种方法创建类 class A(object): def __init__(self, name): self.name = name f = A("lkk") 这样就简单完成了一个A类的创建,我们尝试打印...
  • IDEA创建类模板和方法模板(超详细)

    万次阅读 多人点赞 2018-08-16 23:54:55
    创建类模板 按照顺序打开File–&gt;settings–&gt;Editor–&gt;File and Code Templates–&gt;Includes 输入类注释模板 /** * @Classname ${NAME} * @Description TODO * @Date $...
  • Python中动态创建类实例

    万次阅读 2017-03-24 09:15:43
    Python中动态创建类实例简介在Java中我们可以通过反射来根据类名创建类实例,那么在Python我们怎么实现类似功能呢?其实在Python有一个builtin函数import,我们可以使用这个函数来在运行时动态加载一些模块。如下:def...
  • Xcode7 中创建类扩展文件

    千次阅读 2016-06-22 16:46:07
    Xcode7 中创建类扩展文件这边对如何在Xcode7 中创建类扩展文件,做一个补充记录,因为在开发讨论群中还是见到不断的有童鞋在问这样子的问题。记得这是Xcode6 开始,类扩展文件的创建更Xcode5以及之前创建的位置改变...
  • python中创建类属性

    千次阅读 2016-11-13 20:21:02
    python中创建类属性 类是模板,而实例则是根据类创建的对象。 绑定在一个实例上的属性不会影响其他实例,但是,类本身也是一个对象,如果在类上绑定一个属性,则所有实例都可以访问类的属性,并且,所有实例访问...
  • 创建类模式总结篇

    万次阅读 多人点赞 2012-03-26 09:03:28
    创建类模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关心如何创建对象。创建类模式有5种,分别是: 单例模式:用于得到内存中的唯一对象。工厂方法模式:用于创建...
  • Eclipse 创建类时添加继承

    千次阅读 2018-05-05 11:51:00
    eclipse 中类的继承创建有两种方式: 1、手动敲代码通过 ...2、在创建类的时候就选择好继承关系 点击 Finish,就自动创建好了继承关系 package com.example.activitytest; import android.app.Activi...
  • 创建类Student和对象

    千次阅读 2017-10-10 21:25:36
    public class Student {//创建类Student String name; String ban; String sex; int xue; int age; int score;//2~7行:数据类型的定义 public Student() {};//定义无参构造方法 public Student(String
  • type还有一种完全不同的功能,动态的创建类。type可以接受一个类的描述作为参数,然后返回一个类。(要知道,根据传入参数的不同,同一个函数拥有两种完全不同的用法是一件很傻的事情,但这在Python中是为了保持向后...
  • 1.创建类是自动添加注释 /** * @Author: HWB * @DateTime: ${DATE} ${TIME} * @Description: TODO */ 2. 创建方法时快速添加注释 2.1 新建一个分组 2.2 创建一个Live Template 2.3 配置刚创建的LIve ...
  • 1.创建类时自动添加注释 打开IDEA后在 文件-设置-编辑器-文件和代码模板 英文状态下 File-settings-Editor-File and CodeTemplates 注:以下有两种方式,用一种方式即可,如果两种都添加,类中会出现两次注释内容 第...
  • ios动态创建类Class

    万次阅读 2014-08-12 08:57:56
    【Objective-C Runtime动态加载】---动态创建类Class 动态创建类Class,动态添加Class成员变量与成员函数,动态变量赋值与取值,动态函数调用等方法 a.使用objc_allocateClassPair创建一个类Class  const char *...
  • eclipse中创建类和包的快捷方式

    千次阅读 2019-01-24 14:59:00
    eclipse中创建类和包的快捷方式  总是右键创建类很累啊,得用快捷方式,提高生产力啊。    分别为创建包和类的快捷按钮。  没有,怎么显示,如下:       ...
  • js动态创建类和类变量

    千次阅读 2011-03-09 11:57:00
    js动态创建类和类变量:每个对象类的变量都是动态生成“变量名”和“变量值”的。
  • C# 创建类的多个对象

    千次阅读 2019-02-12 22:53:11
    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;...namespace _0607_创建类的多个对象 { class Program { static void Main(string...
  • C#动态创建类实例并调用

    千次阅读 2016-03-16 13:15:12
    C#动态创建类实例并调用
  • new创建类对象与直接定义的区别

    千次阅读 2016-11-11 14:03:40
    new创建类对象需要指针接收,一处初始化,多处使用new创建类对象使用完需delete销毁new创建对象直接使用堆空间,而局部不用new定义类对象则使用栈空间new对象指针用途广泛,比如作为函数返回值、函数参数等频繁调用...
  • C++用new和不用new创建类对象区别

    千次阅读 2019-04-28 12:41:26
    C++创建对象的两种方法(C++用new和不用new创建类对象):https://blog.csdn.net/lz20120808/article/details/40833517 ...C++用new和不用new创建类对象区别: https://www.cnblogs.com/kissfu/p/3301436.html ...
  • Java创建类的实例的几种方法

    万次阅读 2017-07-06 14:56:40
    Java创建类的实例的几种方法
  • js 创建类和继承的几种方法

    千次阅读 2018-12-28 13:54:52
    在面向对象编程中,类(class)是对象(object)的模板,定义了同一组对象...创建类: 1.利用function关键字和this关键字: /** * 定义类 User * 通过function ,this关键字实现。 * @returns */ function Us...
  • 摘要:在创建类时,自动生成代码的注释模板 本篇内容为大家提供的是IntelliJ IDEA 使用教程中的文件代码模板的使用,自定义生成代码注释的模板。 文件代码模板 文件代码模板可以简单理解为:我们在项目中创建某些...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,528,319
精华内容 1,811,327
关键字:

创建类