在Java和C++中,包含和访问库中的类型(如字符串)有不同的机制。

Java中的import语句:

在Java中,当你使用import语句时,它告诉编译器在编译时需要查找哪些类。Java中的String类位于java.lang包中,该包是自动被所有Java程序导入的,因此你通常不需要显式导入java.lang.String。你可以直接使用String类而不需要任何前缀。

1
2
3
4
5
6
7
8
import java.util.List; // 导入java.util包中的List接口

public class MyClass {
public static void main(String[] args) {
String myString = "Hello, World!"; // 直接使用String
List<String> myList; // 使用导入的List接口
}
}

C++中的#include指令:

在C++中,当你使用#include <string>预处理指令时,你是在告诉编译器在编译之前将<string>头文件的内容文本替换到源文件中。然而,C++标准库中的很多功能都是在命名空间std中定义的。

因此,当你包含<string>头文件后,你还需要使用std::的前缀来访问std命名空间中的string类。

阅读全文 »

在C++中,struct(结构体)和class(类)的基本用法非常相似,因为C++中的结构体可以含有函数和构造函数,它们都可以用来定义包含数据成员和成员函数的自定义类型。不过,结构体和类之间存在一些关键区别:

默认访问权限

  • struct:默认的成员访问权限和继承访问权限是public
  • class:默认的成员访问权限和继承访问权限是private

这意味着当你使用structclass关键字定义类型时,不显式指定访问修饰符的成员在struct中默认是公开的,在class中默认是私有的。

阅读全文 »

在C++中,using关键字有几种用途,包括定义类型别名、引入命名空间中的名称,以及在C++11及后续版本中用于模板别名。以下是using关键字的几种常见用途:

1. 类型别名

typedef一样,using可以用来给类型定义一个新的名称。这在C++11中引入,目的是为了提供一种比typedef更直观的语法来定义类型别名。

用法:

1
using new_type_name = existing_type;

示例:

1
2
3
4
5
6
7
using Integer = int;
using StringList = std::list<std::string>;
using CharArray = char[10];

Integer num = 42;
StringList names;
CharArray array = {'H', 'e', 'l', 'l', 'o'};
阅读全文 »

typedef是C和C++中的一个关键字,它用于给数据类型创建一个新的名称(别名)。通过typedef,你可以为复杂的数据类型定义一个易于记忆和使用的名称。这在处理结构体、联合体、函数指针等复杂类型时特别有用。

基本用法

1
typedef existing_type new_type_name;

示例

1. 为基本数据类型定义别名

1
2
3
4
5
typedef unsigned long ulong;
typedef double real;

ulong number = 123456789;
real pi = 3.14159;
阅读全文 »
0%