这行是什么意思?我们可以为属性以外的对象分配一些东西吗?
What does this line mean?, can we assign something to an object other than attribute?
你好,这是我的第一个问题。
我真的是 C++ 的新手,也是面向对象编程的新手。
所以,我的任务目前需要包装这个C++库,代码是:
#include "cavc/polylineoffset.hpp"
int main(int argc, char *argv[]) {
(void)argc;
(void)argv;
// input polyline
cavc::Polyline<double> input;
// add vertexes as (x, y, bulge)
input.addVertex(0, 25, 1);
input.addVertex(0, 0, 0);
input.addVertex(2, 0, 1);
input.addVertex(10, 0, -0.5);
input.addVertex(8, 9, 0.374794619217547);
input.addVertex(21, 0, 0);
input.addVertex(23, 0, 1);
input.addVertex(32, 0, -0.5);
input.addVertex(28, 0, 0.5);
input.addVertex(39, 21, 0);
input.addVertex(28, 12, 0);
input.isClosed() = true;
// below this is the line that i dont understand
std::vector<cavc::Polyline<double>> results = cavc::parallelOffset(input, 3.0);
}
所以,我不明白的是最后一行。我理解的基本 C++ OOP 是我们可以创建一个对象并可以为其分配一个属性:
class MyClass { // The class
public: // Access specifier
int myNum; // Attribute (int variable)
string myString; // Attribute (string variable)
};
myClass myObject;
myObject.myNum = 1;
myObject.myString = "something";
但是,我在最后一行(来自库)中不明白的是它是从 class 创建一个对象,它是 results
但在那之后,直接分配给一些东西:
results = cavc::parallelOffset(input, 3.0);
这是头文件:
https://github.com/jbuckmccready/CavalierContours/blob/master/include/cavc/polylineoffset.hpp
有问题的行正在调用名为 parallelOffset
的函数,该函数是在名为 cavc
的命名空间中声明的。函数 returns 类型为 std::vector<cavc::Polyline<double>>
的对象,因此该行声明了该类型的对象并将其设置为等于函数返回的值。
语法与例如
相同
float x = sin(3.0);
...只是有一个更复杂的 return-type(std::vector<cavc::Polyline<double>>
,a.k.a cavc::Polyline<double>
个对象的向量)
std::vector<cavc::Polyline<double>> results = cavc::parallelOffset(input, 3.0);
你好,这是我的第一个问题。
我真的是 C++ 的新手,也是面向对象编程的新手。
所以,我的任务目前需要包装这个C++库,代码是:
#include "cavc/polylineoffset.hpp"
int main(int argc, char *argv[]) {
(void)argc;
(void)argv;
// input polyline
cavc::Polyline<double> input;
// add vertexes as (x, y, bulge)
input.addVertex(0, 25, 1);
input.addVertex(0, 0, 0);
input.addVertex(2, 0, 1);
input.addVertex(10, 0, -0.5);
input.addVertex(8, 9, 0.374794619217547);
input.addVertex(21, 0, 0);
input.addVertex(23, 0, 1);
input.addVertex(32, 0, -0.5);
input.addVertex(28, 0, 0.5);
input.addVertex(39, 21, 0);
input.addVertex(28, 12, 0);
input.isClosed() = true;
// below this is the line that i dont understand
std::vector<cavc::Polyline<double>> results = cavc::parallelOffset(input, 3.0);
}
所以,我不明白的是最后一行。我理解的基本 C++ OOP 是我们可以创建一个对象并可以为其分配一个属性:
class MyClass { // The class
public: // Access specifier
int myNum; // Attribute (int variable)
string myString; // Attribute (string variable)
};
myClass myObject;
myObject.myNum = 1;
myObject.myString = "something";
但是,我在最后一行(来自库)中不明白的是它是从 class 创建一个对象,它是 results
但在那之后,直接分配给一些东西:
results = cavc::parallelOffset(input, 3.0);
这是头文件:
https://github.com/jbuckmccready/CavalierContours/blob/master/include/cavc/polylineoffset.hpp
有问题的行正在调用名为 parallelOffset
的函数,该函数是在名为 cavc
的命名空间中声明的。函数 returns 类型为 std::vector<cavc::Polyline<double>>
的对象,因此该行声明了该类型的对象并将其设置为等于函数返回的值。
语法与例如
相同float x = sin(3.0);
...只是有一个更复杂的 return-type(std::vector<cavc::Polyline<double>>
,a.k.a cavc::Polyline<double>
个对象的向量)
std::vector<cavc::Polyline<double>> results = cavc::parallelOffset(input, 3.0);