demo.sol(函数类型):
pragma solidity ^0.4.5;
contract FunctionTest{
uint public v1;
uint public v2;
function internalFunc() internal{
v1 = 10;
}
function externalFunc() external returns (uint res){
v2 = 20;
return v2;
}
function resetV2() public {
v2 = 0;
}
function callFunc() public {
//直接使用内部的方式调用
internalFunc(); //<--- 合约内部直接调用,正确
//不能在内部调用一个外部函数,会报编译错误。
//Error: Undeclared identifier.
//externalFunc(); //<--- 外部合约不可以调用
//不能通过`external`的方式调用一个`internal`
//Member "internalFunc" not found or not visible after argument-dependent lookup in contract FuntionTest
//this.internalFunc(); //<--- this.相当于外部调用
//使用`this`以`external`的方式调用一个外部函数
this.externalFunc();
}
}
// 合约的继承
contrac