这些C++术语是否正确
Are these C++ terms correct?
我正在读一本书,C++入门指南。
我想我已经掌握了窍门,我只是想澄清一些事情。
-
它说
class
就像一个数据类型(数据类型被int
,char
,等等..),而Object
/Instance就像一个变量。这是真的吗? -
什么是数据表单?
-
声明的哪一部分是声明?是
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
}
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 检查输入是否不是整数或数字
- 是否可以初始化不可复制类型的成员变量(或基类)
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 此代码是否违反一个定义规则
- 是否需要删除包含对象的"pair"?
- 是否可以从int转换为enum类类型
- 无论条件是否为true,if总是在c++中执行
- 如何找到大小'x'数组是否完全填充,在C++?
- 检查值是否在集合p1和p2中,但不在p3中
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- 是否有一个术语来表示"single mutex deadlock"(具有非递归互斥锁的死锁类型情况)?
- 诸如size_t,ptrdiff_t和uintmax_t之类的类型是否有一个通用术语
- 我可以检查给定的数字是否可以是具有n个术语的任何算术进程的总和
- 该术语是否"method"由C++标准定义?
- 这些C++术语是否正确
- C/C++ 中是否有称为"hypochecking"的术语?
- 下面"calling function"的术语,它们是否是指调用正在初始化其参数的函数的函数?