这些C++术语是否正确

Are these C++ terms correct?

本文关键字:是否 术语 C++ 这些      更新时间:2023-10-16

我正在读一本书,C++入门指南。

我想我已经掌握了窍门,我只是想澄清一些事情。

  1. 它说class就像一个数据类型(数据类型被intchar,等等..),而Object/Instance就像一个变量。这是真的吗?

  2. 什么是数据表单?

  3. 声明的哪一部分是声明?是data type+the variable=是作业吗?

不完全是。

类"类似于数据类型",因为它是用于创建对象的模板,但它本身不是您可以使用的对象。

使用该模板创建对象的实例时,可以使用该对象。 您可以根据需要创建任意数量的实例 - 您可以将这些实例视为变量。

例如:

class Person
{
    public:
        Person() : name("Joe Bloggs") {}
        std::string getName() { return name; } 
        void setName(std::string n) { name = n; }
    private:
        std::string name;    
};

这是人员的类定义。 它不是一个变量。 您不能在其上调用 setName,因为它尚不存在。 但是当你这样做时:

int main()
{
    Person p, q;
    p.setName("Jill Bloggs");
    q.setName("Bob King");
    std::cout << p.getName() << " " << q.getName() << std::endl;
}

您创建了两个可以分配给、更改和使用的人员实例 - 它们是称为实例的变量。

我不知道"数据形式"是什么意思,忽略它。

至于声明 - 声明声明将存在某物的实例。 例如,如果您正在创建一个类,并且您的头文件具有:

class foo
{
    public:
        foo(int value);
        void bar();
    private:
        int x;
};
你声明你有一个名为bar的函数,它返回void,

并且你有一个名为x的整数。

没有为变量 x 分配内存,也没有提供定义或 bar,所以它们只是声明。 您的源文件可能会提供柱的定义,例如:

void foo::bar()
{
    //some code
}

以及 foo 的构造函数定义,它将使用值初始化 x 并控制它的创建方式(使用初始值设定项列表):

foo::foo(int value) : x(value)
{
    //some code
}