我有一个简单的问题.我有以下代码:
class Class1
{
Class1();
~Class1();
void func1();
private:
char* c;
}
void Class1::func1()
{
string s = "something";
this->c = s.c_str();
}
Run Code Online (Sandbox Code Playgroud)
将c存储"something"的时候func1()完成?
可以使用任何类型T调用Function1,它将被转换为(void*)以便能够添加到列表中但是我丢失了原始指针类型(我需要在一个链表中存储tham,因为我不能为每个创建一个可能的类型).所以我需要保存指针的类型.我知道无法使用c ++完成.有谁能建议替代解决方案?
class MyClass
{
template<class T>
void function1(T* arg1)
{
myList.add((void*)arg);
}
void function2()
{
for(int i = 0; i < myList.size(); i++)
{
myList.get(i);
//restore the original pointer type
}
}
STLinkedlist<void*> myList;
}
Run Code Online (Sandbox Code Playgroud) 如果我有一个类型为T的泛型类,并且我有一个返回T的函数怎么办?如果typeid(T)== typedef(string),我希望我的函数返回一个特定的字符串?
template<class T>
class Class1
{
public:
Class1();
~Class1();
T func();
};
template <class T>
T Class1<T>::func()
{
string d = "T = string";
if (typeid(string) == typeid(T))
return (T)d; <-- here I got the problem
}
Run Code Online (Sandbox Code Playgroud) 我试图遍历一个knockouts数组,每个元素都必须有一个唯一的id.我的数据结构中有一个id,我想用它.如果我展示它可能会更容易.
<div class="row">
<div data-bind="foreach: something">
<div style="display: none;" class="col-xs-12" data-bind="attr: {id: id}">
hidden stuff
</div>
<div class="col-xs-1 hidden-menu-trigger-button">
<div style=" height:inherit; line-height:6px; cursor:pointer; color:black" onclick="$('#' + $id).slideToggle('slow1', null);"> //problem is I assume here
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
所以我相信当我绑定id作为属性是好的但是当我尝试定义onclick事件时,我不知道如何获取id的值.
我明白如果我有以下内容:
char* c1 = "apple";
char* c2 = "apple";
Run Code Online (Sandbox Code Playgroud)
然后这两个char*可以具有完全相同的内存地址.但如果我有以下内容怎么办:
char* c1 = (char*)malloc(sizeof(char)*10);
memset(c1, 0, 10);
c1[0]='a';c1[0]='p';c1[0]='p';c1[0]='l';c1[0]='e';
char* c2 = (char*)malloc(sizeof(char)*10);
memset(c1, 0, 10);
c2[0]='a';c2[0]='p';c2[0]='p';c2[0]='l';c2[0]='e';
Run Code Online (Sandbox Code Playgroud)
即使在这种情况下,c1和c2是否可能具有相同的地址?
我一直试图找到一种算法来计算两个三角形的相交面积,但我没有找到。任何人都可以提供如何编写这个算法的线索吗?
我想要类似的东西:
double getAreaOfIntersection(Vector2 p1,Vector2 p2, Vector2 p3,Vector2 p4,Vector2 p5,Vector2 p6 )
Run Code Online (Sandbox Code Playgroud)
其中 pX 代表 2 个三角形。