当你不去引用它时,它不仅仅是一个指针吗?上述当你不取消引用时,它不仅仅是一个指针吗?
#include "stdafx.h"
#define BOOST_TEST_MODULE example
#include <boost/test/included/unit_test.hpp>
std::list<int>* user_defined_func() {
std::cout << "BEGIN: user_defined_func" << std::endl;
std::list<int>* l = new std::list<int>;
l->push_back(8);
l->push_back(0);
std::cout << "END: user_defined_func" << std::endl;
return l;
}
bool validate_list(std::list<int> &L1)
{
std::cout << "BEGIN: validate_list" << std::endl;
std::list<int>::iterator it1 = L1.begin();
for(; it1 != L1.end(); ++it1)
{
if(*it1<= 1){
std::cout << "Validation failed because an item in the list was less than or equal to 1." << std::endl;
std::cout << "END: validate_list" << std::endl;
return false;
}
}
std::cout << "Test passed because all of the items in the list were greater than or equal to 1" << std::endl;
std::cout << "END: validate_list" << std::endl;
return true;
}
BOOST_AUTO_TEST_SUITE(test)
BOOST_AUTO_TEST_CASE(test)
{
std::list<int>* list1 = user_defined_func();
BOOST_CHECK_PREDICATE(validate_list, (list1));
}
BOOST_AUTO_TEST_SUITE_END()
在线,
BOOST_CHECK_PREDICATE(validate_list, (list1));
,我被告知,我无法通过指针功能期待参考。我认为一个指针(没有被去引用)只是一个地址(即一个引用)。我在这里错过了什么?
从user_defined_func()我得到一个指针,指向它创建的列表。 因此,这个指针返回到我的BOOST_AUTO_TEST_CASE中的list1指针变量 现在由于list1是一个指针,我如何访问list1指针指向的(object?)的引用? – leeand00 2010-02-24 16:18:08
@ leeand00:好问题。我用我的答案编辑了我的帖子。 – Bill 2010-02-24 16:31:44
好吧,我需要更改我的validate_list函数,以便它使用指针而不是引用。这清除了它。 自从我完成了C++之后已经有一段时间了,我没有记住或者不是一个引用和非引用指针之间存在差异的ware。 – leeand00 2010-02-24 17:21:19